Registriert seit: 16. Aug 2005
486 Beiträge
|
Re: Programm starten und warten bis es beendet wird
8. Feb 2006, 10:18
@meisteralex: Ich hab den Quelltext von Klausi01 mal noch etwas umgebaut (dann verstehst du Ihn wahrscheinlich besser) und auch schon ein "Application.Processmessages" mit reingemacht. Damit sollte es funktionieren!
Delphi-Quellcode:
{ WindowState is one of the SW_xxx constants.
Look up ShowWindow in the API help for a list.}
function ExecAndWait( const Filename, Params: string;
WindowState: word): boolean;
var
SUInfo: TStartupInfo;
ProcInfo: TProcessInformation;
CmdLine: string;
begin
{ Enclose filename in quotes to take care of
long filenames with spaces. }
CmdLine := ' "' + Filename + ' " ' + Params;
FillChar(SUInfo, SizeOf(SUInfo), #0);
with SUInfo do begin
cb := SizeOf(SUInfo);
dwFlags := STARTF_USESHOWWINDOW;
wShowWindow := WindowState;
end;
try
Result := CreateProcess( NIL, PChar(CmdLine), NIL, NIL, FALSE,
CREATE_NEW_CONSOLE or
NORMAL_PRIORITY_CLASS, NIL,
PChar(ExtractFilePath(Filename)),
SUInfo, ProcInfo);
except
on E: Exception do
begin
Result:=false;
end;
end;
{ Wait for it to finish. }
if Result then begin
Application.Processmessages; // <-- diese Zeile hab ich eingefügt!!!
WaitForSingleObject(ProcInfo.hProcess, INFINITE);
end;
end;
|
|
Zitat
|