AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programm Updaten

Ein Thema von CoRe.eXtreem · begonnen am 30. Nov 2003 · letzter Beitrag vom 30. Nov 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von CoRe.eXtreem
CoRe.eXtreem

Registriert seit: 30. Nov 2003
61 Beiträge
 
Delphi 2005 Personal
 
#1

Programm Updaten

  Alt 30. Nov 2003, 20:32
Hallo,
ich versuche gerade ein Live-Update in mein Programm ein zu bauen. So weit so gut! Aber wie ersetze ich das Laufende Programm mit einer Heruntergeladenen Datei??

Hier ist der Quellcode;

Delphi-Quellcode:
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); <-- das Funktionier nicht???
  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;
Wäre sehr nett wenn mir hier jemand weiter helfen könnte!

[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#2

Re: Programm Updaten

  Alt 30. Nov 2003, 20:36
Hallo und herzlich willkommen in der DP

Kannst du bitte die Delphi Code Tags benutzen, das macht den Code übersichtlicher und besser zu lesen. Ich hab den Code jetzt nicht genau gelesen, aber mein Vorschlag wäre:

Ein zweites, externes Programm schreiben, dass von der alten Anwendung gestartet wird. Dieses Externe Programm beendet dann das alte und überschreibt es mit der Neuen Datei. Ich glaub nicht, dass du dein Programm so einfach sich selbst überschreiben lassen kannst.

man liest sich, Stanlay
  Mit Zitat antworten Zitat
Benutzerbild von CoRe.eXtreem
CoRe.eXtreem

Registriert seit: 30. Nov 2003
61 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Programm Updaten

  Alt 30. Nov 2003, 20:40
Super empfang... Kenne mich halt noch nicht so gut aus in der DP! Gute Idee aber das muss doch auch so irgendwie klappen, sonst muss ich alles umschreiben?

Viele Grüße... CORE
  Mit Zitat antworten Zitat
Benutzerbild von Thunderchild
Thunderchild

Registriert seit: 12. Nov 2003
Ort: Nohra
139 Beiträge
 
Delphi 7 Personal
 
#4

Re: Programm Updaten

  Alt 30. Nov 2003, 20:41
Du könntest das neue Programm temporär speichern. (z.B. Programmname.ex_).
Dann legst Du ein kleines Programm dazu, welches von Deiner Anwendung beim Beenden aufgerufen wird. Es ersetzt dann die Dateien und könnte auch die Anwendung neu starten. Über einen Parameter (oder eine Tempdatei, erstellt von der Anwendung) könntest Du dann auch an die alte Position vom Beenden zurück kehren.

Etwas umständlicher wäre das Ersetzen über den RunOnce-Eintrag in der Registry. Dieser wird aber erst bei einem Neustart durchgeführt und wäre somit für ein kleines Programm bzw. eines, das nichts mit dem System zu schaffen hat, kaum passend.
Das letzte Schöne, das in C geschrieben wurde, war Schuberts 9. Sinfonie.
Meine Softwareseite (Link aktualisiert am 13.12.2006).
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#5

Re: Programm Updaten

  Alt 30. Nov 2003, 20:42
Ein Hallöle von http://www.FrankNStein.de/Smiley-Wolke.gif,

schau mal in diesen Beitrag: Buttonklick und Programm neustarten [Hilfe]


http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von CoRe.eXtreem
CoRe.eXtreem

Registriert seit: 30. Nov 2003
61 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Programm Updaten

  Alt 30. Nov 2003, 20:46
Vielen Dank für die schnellen Antworten! Gefällt mir hier super! Werde es mit einer Batchdatei versuchen.
  Mit Zitat antworten Zitat
Benutzerbild von CoRe.eXtreem
CoRe.eXtreem

Registriert seit: 30. Nov 2003
61 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Programm Updaten

  Alt 30. Nov 2003, 20:54
weiß jemand wie ich das hier einbinde?

Delphi-Quellcode:
var f: Textfile;
s1, s2, s3: Sting;
begin
    s1 := extractFilename(paramstr(0));
    s2 := ChangeFileExt(s1,'.ex_')
    s3 := ChangeFileExt(s1,'.bat')
    AssignFile(f, s3);
    ReWrite(f);
    WriteLn(f, '@echo off');
    WriteLn(f, ':1');
    WriteLn(f, 'Erase '+s1);
    WriteLn(f, 'If exist '+s1+' Goto 1');
    WriteLn(f, 'ren '+s2+' '+s1);
    WriteLn(f, s1);
    WriteLn(f, 'Erase '+s3);
    CloseFile(f);
    ShellExecute(handle,'open',PChar(s3),nil,PChar(ExtractFileDir(ParamStr(0))),SW_HIDE);
Viele Grüße Core
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#8

Re: Programm Updaten

  Alt 30. Nov 2003, 21:01
Und nochmal hi!

Das ganze muss, soweit ich das gelesen und verstanden hab, in eine Batch Datei.

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#9

Re: Programm Updaten

  Alt 30. Nov 2003, 21:02
Ein Hallöle von http://www.FrankNStein.de/Smiley-Wolke.gif,

so könnte es wohl geh'n:
Delphi-Quellcode:
var f: Textfile;
s1, s2, s3: Sting;
Einfach diesen Teil nach dem Download deines Updates einfügen:
Delphi-Quellcode:
    s1 := extractFilename(paramstr(0));
    s2 := '"'+ExtractFilePath(s1) + 'Update\update.upd"';
    s3 := '"'+ChangeFileExt(s1,'.bat')+'"';
    AssignFile(f, s3);
    ReWrite(f);
    WriteLn(f, '@echo off');
    WriteLn(f, ':1');
    WriteLn(f, 'Erase '+s1);
    WriteLn(f, 'If exist '+s1+' Goto 1');
    WriteLn(f, 'ren '+s2+' '+s1);
    WriteLn(f, s1);
    WriteLn(f, 'Erase '+s3);
    CloseFile(f);
    ShellExecute(handle,'open',PChar(s3),nil,PChar(ExtractFileDir(ParamStr(0))),SW_HIDE);

http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von CoRe.eXtreem
CoRe.eXtreem

Registriert seit: 30. Nov 2003
61 Beiträge
 
Delphi 2005 Personal
 
#10

Re: Programm Updaten

  Alt 30. Nov 2003, 21:18
Das ganze kann man aber in das Programm integrieren oder muss man da ne einzelne Batch datei schreiben. Ich hab das mal probiert da kommt IO ERROR 123-

Viele Grüße und Vielen Dank für eure bemühungen!
  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 19:08 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