Nach dem ich sehr sehr lange nach einer Update Lösung für mein Programm gesucht habe und nichts vernünftiges gefunden hab, außer
Einfaches Online Update, hab ich mich entschlossen auf dieser Basis ein modifiziertes Online Update 2 zu schreiben.
Und so funktioniert es: Vom Webserver wird eine Datei runtergeladen wo die Infos zu der neuen Version stehen, es wird verglichen, ob diese Version schon installiert ist und wenn nicht wird die neue zum Downloaden angeboten.
Hier der Code:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, URLMon, StdCtrls, ExtCtrls, ShellApi;
type
TForm1 =
class(TForm)
Timer1: TTimer;
Timer2: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
Version: Integer=200;
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
var Datei, Ziel: PChar;
begin
Timer1.Enabled:=False;
try
Datei := '
http://www.meineseite/Datei.txt';
Ziel := '
C:\test\Datei.txt';
UrlDownloadToFile(
nil, Datei, Ziel, 0,
nil);
except
end;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
var
List: TStrings;
begin
Timer2.Enabled:=False;
if FileExists('
C:\test\Datei.txt')
then
begin
List := TStringList.Create;
try
List.LoadFromFile('
C:\test\Datei.txt');
if List.Count>0
then
if StrToInt(List[0]) > Version
then
if MessageDlg('
Neue Version ' + List[1] + '
ist verfügbar!' + CHR(13) + CHR(13) +
'
Neu in dieser Version: ' + CHR(13) +
List[3] + CHR(13) + CHR(13) +
'
Möchten Sie diese runterladen?', mtInformation, [mbYes, mbNo], 0) = mrYes
then
begin
ShellExecute(Application.Handle, '
open', PChar(List[2]),
nil,
nil, SW_SHOWNORMAL);
end else Timer2.Enabled:=False;
finally
List.Free;
end;
end;
end;
end.
Die Datei.txt muss so aussehen:
1. Zeile := Die Version ohne einen Punkt in der Mitte damit man Sie mit < bzw. > dann später vergleichen kann
2. Zeile := Die Version so, wie Sie der User dann sehen wird um dann zu entscheiden ob er ein Update will oder nicht
3. Zeile := Die Datei, die gedownloadet werden soll
4. Zeile := Die Beschreibung warum ein Update gemacht werden soll bzw. die Update- Erneuerungen
Ein Beispiel:
Zitat:
Was sagt ihr dazu, bitte eure Meinung.