Programm Update mit selbstentpackendem Archiv (Tipp)
Verfasst: 16.02.2008 22:05
Reiner Tipp ohne Code, wie man eine Update Download auch umsetzen kann.
Packt alle Dateien, die mit einem Update eures Programms ersetzt werden sollen in eine Zip oder Rar Datei. Erzeugt dabei aber kein normales Archiv sondern eine selbstentpackende Exe Datei.
Der Trick dabei ist, dass man hier einstellen kann, dass er nach dem entpacken eine Datei ausführen soll, dadurch kann man aus dem eigenen Programm heraus das selbstentpackende Archiv starten, das eigene Programm direkt nach dem Aufruf sofort beenden und so das Archiv alle Dateien durch die neuen Versionen ersetzen lassen und anschließend wird das Programm direkt neu gestartet.
Mit WinRAR lässt sich sowas sehr einfach umsetzen:
1. alle Dateien, die Upgedatet werden sollen markieren
2. im Kontext Menü (rechte Maustaste) nun "Zum Archiv hinzufügen..." auswählen
3. im ersten Register in WinRAR nun den Namen des Archives angeben und "Selbstentpackendes Archiv erstellen" und "Solides Archiv" (bringt ein paar Bytes) anhaken.
4. im Register "Erweitert" auf "SFX-Optionen..." gehen.
5. Dort im Register "Allgemein" "im aktuellen Verzeichnis erstellen" auswählen und bei "Nach dem Entpacken ausführen" in das Feld der Dateiname eurer Anwendung angeben.
6. Im Register "Modi" "Alles ausblenden" und "Alle Dateien überschreiben" auswählen, damit später das Update ohne Meldungen ausgeführt werden kann.
7. Wenn ihr RAR statt ZIP benutzt im Register "Modul" noch das Modul WinCon.SFX auswählen, weil das Default Modul ist für eine Fenster Ausgabe ausgelegt, welche wir ja aber nicht benötigen.
8. "Erweiterte SFX-Optionen" nun mit OK schließen und mit OK das Selbstentpackende Archiv erstellen lassen.
Im eigenen Programm dann mit URLDownloadToFile_() das Update runter laden lassen, kurz prüfen ob das Update korrekt runtergeladen wurde und dann mit RunProgram() und sofort gefolgtem End das Update durchführen lassen.
Man kann natürlich auch etwas mit den SFX-Optionen in WinRAR rumspielen und so zumindest bei Update Start ein Hinweis Fenster anzeigen lassen, wenn man es nicht ganz ohne Meldungen ausführen lassen will.
Jedenfalls spart man sich so ein extra Update Programm und greift so auf eh schon vorhandene Möglichkeiten zurück.
Sollte euer Programm nach einem Update eine Funktion durchlaufen müssen, könnt ihr das auch einfach per Parameter Übergabe an euer Programm machen, dann tragt ihr in WinRAR beim auszuführenden Programm eben noch ein Parameter hinter eurem Programm ein.
Solltet ihr noch ein manuelles Update anbieten wollen, solltet ihr dann aber lieber ein normales Archiv verwenden und das selbstentpackende Archiv einzig für die Update Funktion nutzen.
Packt alle Dateien, die mit einem Update eures Programms ersetzt werden sollen in eine Zip oder Rar Datei. Erzeugt dabei aber kein normales Archiv sondern eine selbstentpackende Exe Datei.
Der Trick dabei ist, dass man hier einstellen kann, dass er nach dem entpacken eine Datei ausführen soll, dadurch kann man aus dem eigenen Programm heraus das selbstentpackende Archiv starten, das eigene Programm direkt nach dem Aufruf sofort beenden und so das Archiv alle Dateien durch die neuen Versionen ersetzen lassen und anschließend wird das Programm direkt neu gestartet.
Mit WinRAR lässt sich sowas sehr einfach umsetzen:
1. alle Dateien, die Upgedatet werden sollen markieren
2. im Kontext Menü (rechte Maustaste) nun "Zum Archiv hinzufügen..." auswählen
3. im ersten Register in WinRAR nun den Namen des Archives angeben und "Selbstentpackendes Archiv erstellen" und "Solides Archiv" (bringt ein paar Bytes) anhaken.
4. im Register "Erweitert" auf "SFX-Optionen..." gehen.
5. Dort im Register "Allgemein" "im aktuellen Verzeichnis erstellen" auswählen und bei "Nach dem Entpacken ausführen" in das Feld der Dateiname eurer Anwendung angeben.
6. Im Register "Modi" "Alles ausblenden" und "Alle Dateien überschreiben" auswählen, damit später das Update ohne Meldungen ausgeführt werden kann.
7. Wenn ihr RAR statt ZIP benutzt im Register "Modul" noch das Modul WinCon.SFX auswählen, weil das Default Modul ist für eine Fenster Ausgabe ausgelegt, welche wir ja aber nicht benötigen.
8. "Erweiterte SFX-Optionen" nun mit OK schließen und mit OK das Selbstentpackende Archiv erstellen lassen.
Im eigenen Programm dann mit URLDownloadToFile_() das Update runter laden lassen, kurz prüfen ob das Update korrekt runtergeladen wurde und dann mit RunProgram() und sofort gefolgtem End das Update durchführen lassen.
Man kann natürlich auch etwas mit den SFX-Optionen in WinRAR rumspielen und so zumindest bei Update Start ein Hinweis Fenster anzeigen lassen, wenn man es nicht ganz ohne Meldungen ausführen lassen will.
Jedenfalls spart man sich so ein extra Update Programm und greift so auf eh schon vorhandene Möglichkeiten zurück.
Sollte euer Programm nach einem Update eine Funktion durchlaufen müssen, könnt ihr das auch einfach per Parameter Übergabe an euer Programm machen, dann tragt ihr in WinRAR beim auszuführenden Programm eben noch ein Parameter hinter eurem Programm ein.
Solltet ihr noch ein manuelles Update anbieten wollen, solltet ihr dann aber lieber ein normales Archiv verwenden und das selbstentpackende Archiv einzig für die Update Funktion nutzen.