1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
///Exécute un fichier et attend sa fermeture
class function TSystemTool.ExecuteAndWait(CommandLine: string; MilliSeconds_TimeOut: Cardinal = INFINITE): Cardinal;
var
StartInfo: TStartupInfo;
ProcInfo: TProcessInformation;
CreateOK: Boolean;
ACommandLine: PChar;
begin
Result := WAIT_FAILED;
FillChar(StartInfo, SizeOf(TStartupInfo), #0);
FillChar(ProcInfo, SizeOf(TProcessInformation), #0);
StartInfo.cb := SizeOf(TStartupInfo);
ACommandLine := Pchar(CommandLine);
CreateOK := CreateProcess(nil, ACommandLine, nil, nil, False,
CREATE_NEW_PROCESS_GROUP + NORMAL_PRIORITY_CLASS,
nil, nil, StartInfo, ProcInfo);
if CreateOK then
Result := WaitForSingleObject(ProcInfo.hProcess, MilliSeconds_TimeOut);
end; |
Partager