Hallo,
mit diesem kleinen Tutorial will ich euch zeigen, wie euer Programm nach jedem Start prüft ob es eine neue Version gibt. Falls ja, wird man zur Downloadseite gebracht.
Dafür braucht ihr erstmal eine eigene Webseite. Erstellt einfach eine kostenlose von z.B. [Only registered and activated users can see links. Click Here To Register...] oder einem anderen Anbieter. Nachdem ihr das getan habt, erstellt ihr ein Textfeld/Titel, wo ihr die Version eures Programmes reinschreibt:
[Only registered and activated users can see links. Click Here To Register...]
Als nächstes erstellt ihr ein weiteres Textfeld, wo der Downloadlink drinstehen soll:
[Only registered and activated users can see links. Click Here To Register...]
Ich habe meinen mit DownloadBegin und DownloadEnd gekennzeichnet, damit ich ihn später leichter finden kann.
Kommen wir jetzt zum Code. Wir werden bei jedem Start den Seitenquelltext eurer Webseite auslesen und prüfen, welche Version am aktuellsten ist. Den Quelltext einer Seite lesen wir so aus:
Da kommt natürlich eure Webseite rein. Gucken wir uns den Quelltext mal im Browser an.
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
Mit F3 können wir (zumindest in Chrome) nun nach unser Version suchen. In meinem Fall war es 1.9 . Wenn ihr die Stelle gefunden habt, wo eure Version zu sehen ist...
[Only registered and activated users can see links. Click Here To Register...]
dann lassen wir in unserem Programm mit _StringBetween danach suchen. _StringBetween erwartet einen großen String (unser Quelltext) und den String vor bzw. nach unserem gesuchten String. Also ein Stück Code direkt vor und nach der Version. Dieser Code darf sich aber niemals ändern, z.B. wenn ihr den <b> Tag, was für fette schrift steht, mitkopiert und später eure Version wieder normal macht, dann wird euer String nicht gefunden. Also nehmt nur sowas wie <h1 class="" id="blablabla">
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
Am Anfang eures Codes solltet ihr dann das haben:
Die 2 UDF's String.au3 und INet.au3 müsst ihr dafür includen. Zu _StringBetween muss man noch sagen, dass die Funktion einen Array zurückgibt, da unser String ja mehrmals im Text vorkommen könnte. $StrVersion[0] ist das erstgefundene Element, daher benutzen wir auch nur dies. Als Test können wir die $StrVersion[0] ja mal mit einer MsgBox ausgeben:
[Only registered and activated users can see links. Click Here To Register...]
Und siehe da, unsere Version wird gefunden. Nun können wir auf unserer Webseite die 1.9 zu einer 2.0 ändern und unser Programm wird es erkennen. Jetzt fehlt nichts, als ein paar If-Abfragen, ob die Version aktuell ist und der Benutzer auf die Downloadseite möchte. Die Downloadseite findet euer Programm ebenfalls mit _StringBetween. Nachdem ihr wisst, wie ihr es bei eurer Version macht, solltet ihr auch in der Lage sein, das mit eurer Downloadseite hinzukriegen.
If not @error prüft ob überhaupt ein String gefunden wird und mit If Not ($StrVersion[0] = "1.8") wird daraufhin geprüft ob dieser gefundene String 1.8, also die Version des aktuellen Programmes ist. Ich hab die Flag 4 der MsgBox benutzt, weil man dann in der MsgBox entweder Ja oder Nein anklicken kann. Falls der "Ja" Button angeklickt wird, wird der Wert 6 zurückgegeben. Damit findet man heraus ob der User nun die aktuelle Version möchte. Im Ganzen sieht das dann so aus:
ShellExecute öffnet die Downloadseite, die wir ja ebenfalls auf unserer Webseite haben. Und damit hätten wir es geschafft:
[Only registered and activated users can see links. Click Here To Register...]
Falls der User ja anklickt, wird die Downloadseite aufgerufen und das Programm beendet. Wenn nicht, dann passiert nichts und euer Programm sollte daraufhin starten. Solltet ihr nun eine neue Version rausbringen, stellt ihr den Downloadlink in eure Webseite und ändert die Version. Alle User werden dann auf die Version hingewiesen, wenn sie euer Programm starten.
Ich hoffe, dass ich euch damit weiterhelfen konnte und ihr nun in der Lage seid eure Programme "selbst updaten" zu lassen.
mit diesem kleinen Tutorial will ich euch zeigen, wie euer Programm nach jedem Start prüft ob es eine neue Version gibt. Falls ja, wird man zur Downloadseite gebracht.
Dafür braucht ihr erstmal eine eigene Webseite. Erstellt einfach eine kostenlose von z.B. [Only registered and activated users can see links. Click Here To Register...] oder einem anderen Anbieter. Nachdem ihr das getan habt, erstellt ihr ein Textfeld/Titel, wo ihr die Version eures Programmes reinschreibt:
[Only registered and activated users can see links. Click Here To Register...]
Als nächstes erstellt ihr ein weiteres Textfeld, wo der Downloadlink drinstehen soll:
[Only registered and activated users can see links. Click Here To Register...]
Ich habe meinen mit DownloadBegin und DownloadEnd gekennzeichnet, damit ich ihn später leichter finden kann.
Kommen wir jetzt zum Code. Wir werden bei jedem Start den Seitenquelltext eurer Webseite auslesen und prüfen, welche Version am aktuellsten ist. Den Quelltext einer Seite lesen wir so aus:
Code:
#include <INet.au3>
$Quelltext = _INetGetSource('http://www.moneypulation.jimdo.com')
Da kommt natürlich eure Webseite rein. Gucken wir uns den Quelltext mal im Browser an.
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
Mit F3 können wir (zumindest in Chrome) nun nach unser Version suchen. In meinem Fall war es 1.9 . Wenn ihr die Stelle gefunden habt, wo eure Version zu sehen ist...
[Only registered and activated users can see links. Click Here To Register...]
dann lassen wir in unserem Programm mit _StringBetween danach suchen. _StringBetween erwartet einen großen String (unser Quelltext) und den String vor bzw. nach unserem gesuchten String. Also ein Stück Code direkt vor und nach der Version. Dieser Code darf sich aber niemals ändern, z.B. wenn ihr den <b> Tag, was für fette schrift steht, mitkopiert und später eure Version wieder normal macht, dann wird euer String nicht gefunden. Also nehmt nur sowas wie <h1 class="" id="blablabla">
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
Am Anfang eures Codes solltet ihr dann das haben:
Code:
#include <INet.au3>
#include <String.au3>
$Quelltext = _INetGetSource('http://www.moneypulation.jimdo.com')
$StrVersion = _StringBetween($Quelltext, 'class="n j-header"><h1 class="" id="cc-m-header-10499976623">',"</h1><script")
Die 2 UDF's String.au3 und INet.au3 müsst ihr dafür includen. Zu _StringBetween muss man noch sagen, dass die Funktion einen Array zurückgibt, da unser String ja mehrmals im Text vorkommen könnte. $StrVersion[0] ist das erstgefundene Element, daher benutzen wir auch nur dies. Als Test können wir die $StrVersion[0] ja mal mit einer MsgBox ausgeben:
Code:
Msgbox(0,"",$StrVersion[0])
[Only registered and activated users can see links. Click Here To Register...]
Und siehe da, unsere Version wird gefunden. Nun können wir auf unserer Webseite die 1.9 zu einer 2.0 ändern und unser Programm wird es erkennen. Jetzt fehlt nichts, als ein paar If-Abfragen, ob die Version aktuell ist und der Benutzer auf die Downloadseite möchte. Die Downloadseite findet euer Programm ebenfalls mit _StringBetween. Nachdem ihr wisst, wie ihr es bei eurer Version macht, solltet ihr auch in der Lage sein, das mit eurer Downloadseite hinzukriegen.
Code:
#include <INet.au3>
#include <String.au3>
$Quelltext = _INetGetSource('http://www.moneypulation.jimdo.com')
$StrVersion = _StringBetween($Quelltext, 'class="n j-header"><h1 class="" id="cc-m-header-10499976623">',"</h1><script")
Msgbox(0,"",$StrVersion[0])
IF not @error Then
If Not ($StrVersion[0] = "1.8") Then
$MsgBox = MsgBox(4,"New Version","A new Version is available. Would you like to visit the download page?")
EndIf
EndIf
If not @error prüft ob überhaupt ein String gefunden wird und mit If Not ($StrVersion[0] = "1.8") wird daraufhin geprüft ob dieser gefundene String 1.8, also die Version des aktuellen Programmes ist. Ich hab die Flag 4 der MsgBox benutzt, weil man dann in der MsgBox entweder Ja oder Nein anklicken kann. Falls der "Ja" Button angeklickt wird, wird der Wert 6 zurückgegeben. Damit findet man heraus ob der User nun die aktuelle Version möchte. Im Ganzen sieht das dann so aus:
Code:
#include <INet.au3>
#include <String.au3>
$Quelltext = _INetGetSource('http://www.moneypulation.jimdo.com')
$StrVersion = _StringBetween($Quelltext, 'class="n j-header"><h1 class="" id="cc-m-header-10499976623">',"</h1><script")
Msgbox(0,"",$StrVersion[0])
IF not @error Then
If Not ($StrVersion[0] = "1.8") Then
$MsgBox = MsgBox(4,"New Version","A new Version is available. Would you like to visit the download page?")
If $MsgBox = 6 Then
$StrDownload = _StringBetween($Quelltext, '<strong>DownloadBegin</strong>','<b>DownloadEnd</b>')
IF not @error Then
ShellExecute($StrBetween2[0])
Exit
Else
MsgBox(0,"Error","Couldn't find download page")
EndIf
EndIf
EndIf
EndIf
ShellExecute öffnet die Downloadseite, die wir ja ebenfalls auf unserer Webseite haben. Und damit hätten wir es geschafft:
[Only registered and activated users can see links. Click Here To Register...]
Falls der User ja anklickt, wird die Downloadseite aufgerufen und das Programm beendet. Wenn nicht, dann passiert nichts und euer Programm sollte daraufhin starten. Solltet ihr nun eine neue Version rausbringen, stellt ihr den Downloadlink in eure Webseite und ändert die Version. Alle User werden dann auf die Version hingewiesen, wenn sie euer Programm starten.
Ich hoffe, dass ich euch damit weiterhelfen konnte und ihr nun in der Lage seid eure Programme "selbst updaten" zu lassen.