Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Online Update für Programme (https://www.delphipraxis.net/5569-online-update-fuer-programme.html)

Tim.exe 11. Jun 2003 13:42


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

Uncle Cracker 11. Jun 2003 14:09

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;

Tim.exe 11. Jun 2003 14:26

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?

Spoon 11. Jun 2003 17:23

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 11:01 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