Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: Buttonklick und Programm neustarten [Hilfe]

  Alt 17. Okt 2003, 02: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
$2B or not $2B
  Mit Zitat antworten Zitat