![]() |
Einfaches Online Update 2
Liste der Anhänge anzeigen (Anzahl: 1)
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
![]() 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:
Die Datei.txt muss so aussehen:
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. 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:
|
Re: Einfaches Online Update 2
Wo genau liegt jetzt der Unterschied zu meinem bescheidenem Online Update?
|
Re: Einfaches Online Update 2
Zitat:
|
Re: Einfaches Online Update 2
Ich oder er?
|
Re: Einfaches Online Update 2
Wessen Quelltext steht denn da oben?
|
Re: Einfaches Online Update 2
von beiden etwas
|
Re: Einfaches Online Update 2
Dann sollten auch beide einmal nachsehen :zwinker:
|
Re: Einfaches Online Update 2
Außerdem speichert man nicht nach C:\Irgendwas hardgecodetes, für sowas nimmt man ein temporäres Verzeichnis.
Fehlerbehandlung fehlt auch |
Re: Einfaches Online Update 2
Zitat:
|
Re: Einfaches Online Update 2
hallo AlexII,
kannst du mir noch erklären, für was die zwei Timer benötigt werden? Ich blicke da nicht ganz durch :?: Das GreenHorn |
Re: Einfaches Online Update 2
Zitat:
weshalb DAS Verzeichnis des Users? Das verstehe ich nicht ganz :stupid: Das GreenHorn |
Re: Einfaches Online Update 2
Zitat:
Damit dort keine Dateileichen zurückbleiben können, benutze ich dort immer selbstlöschende temporäre Dateien. Zitat:
Oder können auch die Dateien selbst direkt aktualisiert werden? Auf jeden Fall solltest du den Download vielleicht selbst übernehmen und nicht einfach ShellExecute aufrufen. Ich bin nicht so sicher, dass das immer funktionieren wird, was wenn die Verknüpfung mit dem Browser oder der Download im Browser es nicht macht wie es soll? :gruebel: Mein kleiner ![]() |
Re: Einfaches Online Update 2
Also ich kann nichmal des DemoProgramm ausführen... Da kommt sofort ne Trojaner meldung und des Programm wird gelöscht ....
|
Re: Einfaches Online Update 2
Liegt an der generischen Erkennung, da wohl irgendwelche Internetfunktionen verwendet werden, und da scheint der Virenscanner anzuschlagen.
|
Re: Einfaches Online Update 2
Sieht man ja auch schon dran welche Programme das
![]() Zum Updater: Gibt es eigentlich irgendwann eine neue Version mit mehr Funktionen? |
DP-Maintenance
Dieses Thema wurde von "fkerber" von "Tutorials und Kurse" nach "Open-Source" verschoben.
Das passt hier wohl etwas besser ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 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