Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Update vorhanden oder nicht? (prüfen) (https://www.delphipraxis.net/5106-update-vorhanden-oder-nicht-pruefen.html)

Endurance 23. Mai 2003 22:59


Update vorhanden oder nicht? (prüfen)
 
Hallo zusammen

Ich bräuchte mal Hilfe von euch. Unzwar wenn man auf einen Button klickt soll das Programm prüfen ob es eine neue Version gibt.

Das ganze sollte dann so aussehen das man eine Meldung bekommt wo dann drin steht bei keiner neuen Version "Keine neue Version verfügbar" mit einem Ok Button.

Bei einer neuen Version sollte eine Meldung kommen wo dann drin steht "Neue Version verfügbar" mit einem Ok Button wo man auf die Seite drauf kommt wo man die neue Version runterladen kann + einen abbrechen "Cancel" Button wo die Meldung einfach geschlossen wird.

Wer Emule benutzt kennt vielleicht diese Funktion ist vieleicht leichter zu verstehen was ich meine.

Ich bin über jeden Hilfe dankbar.

Danke

jbg 23. Mai 2003 23:48

Lege zwei Dateien auf den Server. In der einen steht die Versionsnummer und die andere ist das Update.
Mit der Indy-Komponente TIdHTTP kannst du dann die sehr kleine "UpdateInfo.txt" herunterladen und deren Inhalt mit der aktuellen Version vergleichen. Ist die Server-Version die aktuellere, dann nutzt du ShellExecute (Unit ShellAPI) um den Standardbrowser mit der passenden Seite aufzurufen.

Endurance 24. Mai 2003 10:42

Hallo

Erstmal danke für die Antwort aber so richtig schlauer bin ich noch nicht geworden. Ich werde mal schauen wie weit ich komme wenn überhaupt.

Jens Schumann 28. Mai 2003 18:22

Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich hoffe Dein Problem ist noch aktuell.
Hier kommt die Lösung. Grundsätzlich funktioniert es so, wie jbg es beschrieben hat.
Also, Du hast einen FTP-Server. Auf diesen Server legst Du neben den Dateien, die upgedated werden sollen eine Datei (A) (z.B. Textdatei) mit der Versionskennung. Der Client hat ebenfalls eine Datei (B) mit der Versionskennung. Jetzt brauchst Du nur die Datei (A) vom Server zu laden und den Inhalt mit Datei (B) zu vergleichen. Ist der Inhalt unterschiedlich kann das Update gestartet werden. Der Haken an der Sache ist nur, dass man eine EXE, die gerade läuft nicht so ohne weiteres auf der Platte überschreiben kann.
Ich habe das Problem mit zwei Programmen gelöst. Die eigentliche Anwendung startet das UpdateProgramm. Nach dem Start des UpdateProgrammes holt sich die Anwendung mit FindWindow das FensterHandle des UpdateProgramms. Jetzt sendet die Anwendung mit PostMessage das eigene FensterHandle an das UpdateProgramm. Jetzt können die beiden Programme über Botschaften miteinander kommunizieren.
Nun baut das UpdateProgramm eine Verbindung zum FTP-Server auf und holt Datei (A). Wenn ein Update erforderlich ist, sendet das Updateprogramm eine "Close-Botschaft" an die Anwendung. Daraufhin beendet sich die Anwendung selbsständig (Jetzt kann das UpdateProgramm die EXE der Anwendung auf der Platte überschreiben).
Nun kann sich das Updateprogramm eine weitere TxT-Datei vom Server holen. In dieser Datei stehen die Dateinamen der Dateien, die upgedated werden sollen. Nachdem der Download beendet ist, startet das UpdateProgramm wieder die Anwendung und beendet sich selbst.

Um das ganze mit ein bisschen Code zu hinterlegen habe ich Dir ein kleines Beispiel angefügt.

Ach ja, das Updateprogramm kann sich natürlich nicht selbst updateten. Deshalb solltest Du sehr viel Grips da hineinstecken und Dir möglichst alle Eventualiäten vorher überlegen.

Endurance 29. Mai 2003 09:22

Hallo

Danke Jens für die Antwort. Ich werde mir mal das ganze mal anschauen und gucken was ich so zusammen bekomme. Ich habe auch was schniekes auf Torry gefunden unzwar das TWebUpdate v.1.4. In der Zip Datei sind verschiedene Arten von Update Möglichkeiten.

http://www.torry.net/webupdate.htm


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz