Einzelnen Beitrag anzeigen

Bladefire

Registriert seit: 30. Jun 2014
67 Beiträge
 
#1

Programm aktualisieren (Codehilfe)

  Alt 4. Jul 2014, 20:59
Hi,

Ich möchte das sich mein Programm automatisch erneuert. Was mache ich falsch? (hin und wieder funktioniert es ohne das sich etwas offensichtliches verändert hat)

Code:
var
  Form1: TForm1;
  Inidatei: TInifile;
  Dateinname: string;

implementation

{$R *.dfm}



procedure updaten;
var
Datei: TFileStream;
begin

      // neue datei wird erstellt
    Datei := TFileStream.Create(extractfilepath(application.ExeName)+'project2.exe',fmCreate or fmShareDenyWrite);

      // neue datei wird beschrieben
    Form1.idhttp1.Get('http://{url}.project2.exe',Datei);

      // Neue datei wird ausgeführt
    Datei.Free;
    renamefile(application.ExeName,'old123123.exe');
    ShellExecute(Application.Handle, 'open', PChar(extractfilepath(application.ExeName)+'project2.exe'), nil, nil,SW_SHOWNORMAL);
    Form1.Close;
end;

procedure löschen;
begin
     deletefile(extractfilepath(application.ExeName)+'old123123.exe');
     renamefile(application.ExeName,'project1.exe');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
updaten;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 showmessage('wird wenigstens gestartet');

löschen;
Danke für eure hilfe

Lg Simon
______
Edit: es kommt manchmal vor das die neu heruntergeladene datei zwar als prozess im task manager angezeigt wird, das Ereignis "FormCreate" wird allerdings nicht ausgelöst.

Geändert von Bladefire ( 4. Jul 2014 um 21:02 Uhr)
  Mit Zitat antworten Zitat