In diesem Tutorial erkläre ich euch, wie ihr eine einfache Update Funktion in euer Programm einbaut.
Die Funktionsweise
Das Programm lädt eine *.txt Datei herunter, in der die neueste Version und deren URL steht. Es wird geprüft, ob die Version auf dem Server ist, als die, die gerade ausgeführt wird. Wenn ja, wird die neue Version heruntergeladen. Das gerade laufende Programm wird beendet und durch das Neue ersetzt.
Die *.txt-Datei
In der ersten Zeile der Datei muss die Version stehen. Zum Beispiel 1. In der zweiten Zeile muss die URL zur neusten Version stehen.
Die Update Funktion
Im Form Load des Programms stellt ihr die aktuelle Version ein. In meinem Beispiel ist es die Version 1.
Code:
Dim Version as Integer<br />Version = 1
Der Code der jetzt folgt wird am besten in einem Modul als Public Function eingefügt.
Als erstes legt ihr die URL für die *.txt-Datei mit der Versionsinfo fest.
Code:
Dim URL as String<br />URL = "[URL]http://server.se.funpic.de/Updates/neuerals.txt[/URL]"
Als nächstes den Pfad für die *.txt-Datei auf dem PC.
Code:
Dim VersionInfo as String<br />VersionInfo = Environ$("windir") & "versinf.txt"
Jetzt ladet ihr die *.txt-Datei herunter.
Code:
URLDownloadToFile(0, URL, VersionInfo, 0, 0)
Ihr benötigt dazu noch folgende API:
Code:
Private Declare Function URLDownloadToFile Lib "urlmon" _<br />Alias "URLDownloadToFileA" ( _<br />ByVal pCaller As Long, _<br />ByVal szURL As String, _<br />ByVal szFileName As String, _<br />ByVal dwReserved As Long, _<br />ByVal lpfnCB As Long) As Long
Jetzt lest ihr die Version aus Zeile 1 und die URL aus Zeile 2 aus.
Code:
Dim TheVersion as String<br />Dim UpdateURL as String<br />Open VersionInfo for Input as #1<br />Input #1, TheVersion<br />Input #1, UpdateURL<br />Close #1
Nun testet ihr, ob die neuste Version älter oder genau so alt ist wie eure. Falls ja, wird die Funktion beendet und die *.txt wird gelöscht. falls nein läuft sie weiter und das Update beginnt.
Code:
If CInt(TheVersion) <= Version Then<br />Kill VersionInfo<br />Exit Function<br />End If
Jetzt fragt ihr den Benutzer über MsgBox ob er updaten will. Falls ja, läuft die Sub weiter. Falls nein, wird sie beendet und die *.txt gelöscht.
Code:
MsgBox "Eine neuere Version ist verfügbar. Wollen sie jetzt updaten?", vbYesNo, "Update verfügbar"<br />If vbNo Then<br />Kill VersionInfo<br />Exit Sub<br />End If
Jetzt ladet ihr das Update herunter.
Code:
Dim MyUpdatePath as String<br />MyUpdatePath = Environ$("windir") & "myupdate.exe"<br />URLDownloadToFile(0, UpdateURL, MyUpdatePath, 0, 0)
Nun erstellt ihr eine Batch-Datei die euer Programm mit dem Update ersetzt. Wir benutzen eine Batch-Datei, weil sie den Vorteil hat, dass sie sich selbst löschen kann. Das kommt daher, dass sie nur Skripte an die Konsole übergibt.
Ich hoffe ihr habt alles verstanden und wisst jetzt mehr als vorher. ;D
mfg c0re
_________________
Alpha63 Newbie
Anmeldedatum: 21.05.2008 Beiträge: 4
Verfasst am: 26.05.2008, 20:21
wäre ein video tut gut
ZiG Überflieger
Anmeldedatum: 16.04.2008 Beiträge: 421
Verfasst am: 26.05.2008, 20:31
vb-x.org hat es sich zum Ziel gesetzt, etwas gegen den fortschreitenden Analphabetismus in unseren Breiten zu unternehmen. Dies macht sich vermehrt in text- und weniger video tutorials bemerkbar und der aktiven Hilfe/Unterhaltung mit anderen hier angemeldeten Benutzern in schriftlicher Form.
Wir Danken für ihr Verständnis.
Alpha63 Newbie
Anmeldedatum: 21.05.2008 Beiträge: 4
Verfasst am: 26.05.2008, 20:33
ich hab dieses "Verständnis" nicht ich seh nicht durch und da denke ich das bei einem video-tut das einfacher ist es zu verstehen.
Ich Danken für ihr Verständnis.
ZiG Überflieger
Anmeldedatum: 16.04.2008 Beiträge: 421
Verfasst am: 26.05.2008, 21:47
Ja vieles ginge einfacher, aber das Leben ist nunmal nicht einfach. Und wenn du kein Verständnis dafür hast, dass wir nicht sofort alle hüpfen wenn du "Spring" sagst, bist du hier an der falschen Stelle.
Ich kanns nur nochmal betonen. Unsere Hilfe/Tutorials/Sources bieten wir auf freiwilliger Basis an. Wir sind kein Dienstleistungsunternehmen dem man Aufträge erteilt.
dcm Poster
Anmeldedatum: 04.05.2008 Beiträge: 101
Verfasst am: 26.05.2008, 22:21
Hm... Schön wäre es auch, einfach app.major & app.minor & app.revision zu verwenden, anstatt bei jedem update den quelltext ändern zu müssen
Alpha63 Newbie
Anmeldedatum: 21.05.2008 Beiträge: 4
Verfasst am: 28.05.2008, 09:03
ich hab ein vorschlag gemacht und wenn du meinst nur weil du der oper proger bist kannste dir erlauben leute zu beleidungen dan haste dich geschnittten
weil so wie es erklärt wird versteht das kein anfänger
ZiG Überflieger
Anmeldedatum: 16.04.2008 Beiträge: 421
Verfasst am: 28.05.2008, 09:10
Ich sehe nichts wo ich dich beleidigt haben könnte. Ich hab nur erklärt dass es bei uns vermehrt Text tutorials gibt.
Ich finde aber dein Verhalten und Unverständnis dafür dass wir nicht sofort für dich persönlich ein videotut machen fehl am Platz.
Achja. Tut ist nicht von mir falls du es nicht bemerkt hast. Und wenn es für dich zu schwer ist, dann solltest du dir vielleicht mal andere tutorials zuerst ansehen. Es gibt ja auch einige videotuts zum lernen.
Regenwurm Coder
Anmeldedatum: 06.05.2008 Beiträge: 88
Verfasst am: 28.05.2008, 12:58
Vielen Dank =)
Schönes tut.
John-Cenaplayer Newbie
Anmeldedatum: 01.05.2008 Beiträge: 19
Verfasst am: 05.06.2008, 17:06
Nettes TuT
Hat aber jemand noch ne Ahnung, wie das bei VB.NET aussehen könnte?
Hab fast alles dort hinbekommen, nur diese Funktion irgendwie nicht: