AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Delphi Einfaches Online Update 2
Thema durchsuchen
Ansicht
Themen-Optionen

Einfaches Online Update 2

Ein Thema von AlexII · begonnen am 31. Aug 2009 · letzter Beitrag vom 24. Okt 2009
Antwort Antwort
Seite 1 von 2  1 2      
AlexII
Registriert seit: 28. Apr 2008
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:
230
2.3.0
http://meineseite.de/Prog.exe
Die Beschreibung warum ein Update gemacht werden soll..
Was sagt ihr dazu, bitte eure Meinung.
Angehängte Dateien
Dateityp: zip demo_212.zip (205,4 KB, 37x aufgerufen)
 
Larsi

 
Delphi 2007 Professional
 
#2
  Alt 3. Sep 2009, 12:03
Wo genau liegt jetzt der Unterschied zu meinem bescheidenem Online Update?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

 
Delphi 11 Alexandria
 
#3
  Alt 3. Sep 2009, 12:12
Zitat:
if List.Count>0 then
Weiter unten greifst Du aber auf List[3] zu. Vielleicht sollte man daher die Abfrage etwas ändern
Detlef
  Mit Zitat antworten Zitat
Larsi

 
Delphi 2007 Professional
 
#4
  Alt 3. Sep 2009, 12:21
Ich oder er?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

 
Delphi 11 Alexandria
 
#5
  Alt 3. Sep 2009, 12:23
Wessen Quelltext steht denn da oben?
Detlef
  Mit Zitat antworten Zitat
generic

 
Delphi XE5 Professional
 
#6
  Alt 3. Sep 2009, 14:47
von beiden etwas
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

 
Delphi 11 Alexandria
 
#7
  Alt 3. Sep 2009, 14:57
Dann sollten auch beide einmal nachsehen
Detlef
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

 
Turbo Delphi für Win32
 
#8
  Alt 3. Sep 2009, 15:08
Außerdem speichert man nicht nach C:\Irgendwas hardgecodetes, für sowas nimmt man ein temporäres Verzeichnis.
Fehlerbehandlung fehlt auch
Nikolai Wyderka
  Mit Zitat antworten Zitat
generic

 
Delphi XE5 Professional
 
#9
  Alt 3. Sep 2009, 22:15
Zitat von inherited:
nimmt man ein temporäres Verzeichnis.
Eigentlich nimmt man DAS Temp.Verzeichnis des Users.
  Mit Zitat antworten Zitat
GreenHorn3600
 
#10
  Alt 3. Sep 2009, 22:59
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:14 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