1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
function ExecuteAndWaitLoad(const CommandLine: string; memo: TMemo): cardinal;
var
zAppName: array[0..512] of char;
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
i: integer;
H: HWND;
begin
StrPCopy(zAppName, CommandLine);
FillChar(StartupInfo, Sizeof(StartupInfo), #0);
StartupInfo.cb := Sizeof(StartupInfo);
if not CreateProcess(nil, zAppName, nil, nil, false, 0, nil, nil, StartupInfo, ProcessInfo) then
begin
Result := 0;
exit;
end
else
begin
repeat
Result := WaitForSingleObjectEx(ProcessInfo.hProcess, 40, true);
case Result of
WAIT_OBJECT_0: memo.Lines.Add('WAIT_OBJECT_0');
WAIT_TIMEOUT: memo.Lines.Add('WAIT_TIMEOUT');
WAIT_ABANDONED: memo.Lines.Add('WAIT_ABANDONED');
WAIT_FAILED: memo.Lines.Add('WAIT_FAILED');
WAIT_IO_COMPLETION: memo.Lines.Add('WAIT_IO_COMPLETION');
else memo.Lines.Add('¿erreur?');
end;
Application.ProcessMessages;
until Result = WAIT_OBJECT_0;
end;
end; |
Partager