Zitat von
shmia:
WaitForSingleObject:
If the function fails, the return value is WAIT_FAILED. To get extended error information, call GetLastError.
Delphi-Quellcode:
repeat
WaitHandle := WaitForSingleObject( ProcessInfo.hProcess,30);
if WaitHandle=WAIT_FAILED then // <---------
RaiseLastWin32Error;
Application.ProcessMessages;
until (WaitHandle <> WAIT_TIMEOUT) or application.terminated;
Du solltest auch Resourceschutzblöcke für deine Handles verwenden.
Wenn die Function was anderes als "WAIT_TIMEOUT" zurückliefern würde, würde er nicht in der Schleife hängen bleiben.
Nee, Der Process, der erschaffen wird, hängt sich weg. (Denke ich)