Ob Updates vorhanden sind wird überprüft indem eine Datei aus dem Internet heruntergeladen wird. Die erste Zeile dieser Datei muss die Version die angefragt hat enthalten und die zweite Zeile die neueste Version des Programms. Wenn es eine neue Version gibt folgt dann eine Liste mit Dateien die heruntergeladen werden müssen. Diese Liste ist folgendermaßen aufgebaut: Die erste Zeile der Liste gibt an welche Datei ausgeführt werden soll wenn alle Dateien fertig heruntergeladen wurden. Die nächsten Zeilen enthalten immer abwechselnd die Adresse zur Datei, den Dateinamen auf dem Computer und die MD5 Checksumme der Datei. Dann kommt eine Leerzeile und ab dann kann eine Beschreibung des Updates kommen, diese wird dem Benutzer angezeigt bevor er den Update herunterlädt.
Diese Info Datei wird von einer PHP Datei ausgegeben. Es liegt eine einfache PHP Datei bei die anhand der Parameter überprüft ob es eine entsprechende Update Info Datei gibt und überträgt dann die entsprechende Datei an das Programm. Wenn keine entsprechende Update Info Datei gefunden wird überträgt sie eine Datei die angibt das es keinen Update gibt (zweimal die Version die das Programm angegeben hat).
Es gibt zwei unterschiedliche Möglichkeiten das Steuerelement hinzuzufügen: entweder man liefert eine .ocx Datei mit (ich glaube die muss auch registriert werden) und fügt sie über Projekt -> Komponenten hinzu oder man nimmt den Source Code (liegt bei) und fügt die entsprechenden Dateien dem Projekt hinzu (4 Dateien die hinzugefügt werden müssen (Update.ctl, clsMD5.cls, frmUpdate.frm, frmInfo.frm) und die Dateien Update.ctx, frmUpdate.ctx und frmInfo.ctx müssen immer im gleichen Ordner sein wie die Datei anderen Dateien).
Die erste Methode hat den Vorteil das man weniger Source Code (= weniger Chaos) im Projekt hat, aber den Nachteil, dass die OCX Datei immer mitgeliefert und evtl. registriert werden muss. Bei der 2. Möglichkeit kann das Programm evtl. unübersichtlich werden, dafür wird das Control aber mit einkompiliert was bedeutet das die OCX Datei nicht gebraucht wird.
Ich habe ein Beispiel Programm dazu Programmiert um die teilweise etwas umständliche Handhabung zu demonstrieren. In dem Beispielprojekt ist nur ein Update Server eingetragen, aber es ist möglich mehrere einzutragen indem in die Multiline Textbox Server mehrere Adressen eingetragen werden (je Zeile immer einer). Ich weis nicht warum aber bei mir nimmt die Textbox die Return und Enter Taste nicht an, um mehrere Server einzutragen musste ich deshalb die Server erst in eine andere Datei schreiben und dann mit Strg + C und Strg + V in die Textbox kopieren, das hat bei mir funktioniert (ja die Textbox steht wirklich auf Multiline, dadran liegts nicht!). Der Sourcecode ist auch dabei. Ich habe im Source Code ein Beispiel für jede der beiden oben genannten Möglichkeiten gemacht.
Um neue Updates Online stellen zu können ist ein Programm dabei, dass automatisch die benötigten Dateien erstellt und auf den Server hoch lädt.
hey
hätte mich gewundert wenns anders wäre
schau mal aufs datum
hier ist kaum mehr was los seit die seite mal eine zeit lang down war und dann den besitzer gewechselt hat _________________
christopher.g Überflieger
Anmeldedatum: 03.05.2008 Beiträge: 536
Verfasst am: 13.01.2012, 19:00
aber kurz und knapp du kannst dir selbst einen einfachen updater schreiben
ist recht simpel
du legst auf deinen ftp server einen datei an "Version.txt"
die liest du beim programmstart aus
stimmt sie mit deiner programmversion überein passt wenn nicht
soll der die daten aus einem bestimmten verzeichnis runterladen
eventuell müsstet du in einer weiteren datei am server noch angeben welche dass sind
dann ist es wahrscheinlich einfacher