Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

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

Re: Buttonklick und Programm neustarten [Hilfe]

  Alt 17. Okt 2003, 01:12
Hi SleepyMaster,
wo hast'n das mit dem "Sleep" her?

Für deinen Code bietet sich noch 'ne kleine Optimierung an:
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);
Format( ... , [ParamStr(0)]) nicht nötig
"copy x y" & "erase x" = "ren x y"
es reicht, wenn die Dateinamen 1-mal berechnet werden
"sleep x"?
"echo off" spart Rechenleistung, da nicht "tausende" Zeilen angezeigt werden



So in etwas wollte ich das schreiben, war aber nicht mehr nötig:
...
neue Datei z.B. mit name.ex_ erstellen

Batchdatei schreiben:
z.B. update.bat (unter Win 2000 und XP geht auch update.cmd)
(notfalls die Dateinamen in " setzen)
Delphi-Quellcode:
@echo off
:s
del name.exe
if exist name.exe goto s
ren name.ex_ name.exe
name.exe
del update.bat
Batchdatei mit SHELLEXECUTE starten

aktuelle Instanz beenden

nachdem beenden wird diese Datei gelöscht, die neue umbenannt und gestartet
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat