![]() |
Online Update für Programme
Hallo,
was ist den die gängigste und auch einfache Methode um ein Online Update von Programme zu realisieren? Gibt es da VCL oder Tuts??? Ich möchte auch gar keine umfangreiche und komplizierte Update-Funktion einbauen, ich habe wir sowas vorgestellt: Der User kann auf "Update Suche" auf der Form klicken. Wenn keine Internetverbindung besteht wird er darauf aufmerksam gemacht und wenn bereits eine Verbindung steht, wird irgendwie meine Webseite ausgelesen (passiert unbemerkt in Hintergrund) in deren Quellcode hinterlegt ist ob ein Update oder neuere Version vorhanden ist oder nicht. Dem User wird dann angzeigt ob es ein Update / eine neuere Version des Programms zur Verfügung steht. Es geht also nur um die Anzeige ob ein Update vorhanden ist oder nicht, Die Installation des Updates soll der User manuell machen. Kann da jemand helfen? Gruss Tim |
Probier's mit der Funktion von EnSaCom
Code:
{
Die Datei update.ini wird heruntergeladen und als update.000 abgespeichert. Die Datei update.upd wird heruntergeladen und gespeichert. Es wird geprüft ob die Datei update.ini verfügbar ist Wenn sie verfügbar ist, wird überprüft ob das Datum darin älter als das Datum in update.000 ist. Wenn es älter ist dann wird die update.ini gelöscht, die update.000 in update.ini umbenannt und die Datei update.upd entpackt. Wenn das Datum in der heruntergeladenen Datei update.ini nicht neuer als das Datum in der vorhandenen Update.ini ist, werden die Dateien update.upd und update.000 gelöscht } procedure TForm1.Update2Click(Sender: TObject); var old, new : string; begin if DownloadFile('http://www.ensacom.de/Delphiprogramme/Delphimanager/update.ini',(Extractfilepath(Application.exename)+'Update\update.000')) then begin DownloadFile('http://www.ensacom.de/Delphiprogramme/Delphimanager/update.upd',(Extractfilepath(Application.exename)+'Update\update.upd')); end; iniold := tinifile.Create(Extractfilepath(Application.exename)+'Update\update.ini'); try old := iniold.ReadString('Version','Datum',''); finally iniold.Free; end; ininew := tinifile.Create(Extractfilepath(Application.exename)+'Update\update.000'); try new := ininew.ReadString('Version','Datum',''); finally ininew.Free; end; if old < new then begin if MessageDlg('Es ist ein neues Update verfügbar. Jetzt installieren?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin deletefile(Extractfilepath(Application.exename)+'Update\update.ini'); renamefile(Extractfilepath(Application.exename)+'Update\update.000',(Extractfilepath(Application.exename)+'Update\update.ini')); UpdateInstallieren(self); CB_THEMEN.Items.LoadFromFile(PathTHM+'\Themen.thm'); CB_Themen.DropDownCount:=CB_THEMEN.Items.Capacity; CB_THEMEN.ItemIndex:=0; CB_ThemenSelect(self); end; end else begin showmessage('Kein neues Update verfügbar!'); deletefile(Extractfilepath(Application.exename)+'Update\update.000'); deletefile(Extractfilepath(Application.exename)+'Update\update.upd'); end; end; |
Vielen Dank, werde ich ausprobieren.
Mir ist auch noch folgendes eingefallen (wie gesagt es soll ganz einfach sein): - Der User klickt "Online Update". - Auf dem Server gibt es eine "Update.txt" die ich immer wieder manuell ändere (wenn updates vorhanden sind oder nicht). - es wird die "Update.txt" auf dem Webserver geöffnet. - In der Update steht irgendwas (z.B: "Update vorhanden" oder "Update nicht vorhanden"). - Das Programm liest die "update.txt" und vergleicht die Strings - Wenn in der "Update.txt" steht "Update vorhanden" dann wird dem User angezeigt "Update ist vorhanden"... Müsste doch auch gehen oder muss man da noch was bestimmtes beachten? |
Meine einfachste Lösung war einfach, dass ich jeder Version eine Versionsnummer zugeordnet habe. Beim Überprüfen auf Updates wurde eben eine solche *.txt datei runtergeladen, in der nur eine zahl stand.
War diese Zahl größer als die Versionsnummer war ein neues Update vorhanden, wenn nicht - dann nicht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz