Здравствуйте Master, Вы писали:
M>У меня стандартная проблема надо отследить завершение родительской задачи.
M>//Start в главной задаче
M>ProcessID := GetCurrentProcessID;
M> ZeroMemory(@SI, SizeOf(SI));
M> SI.cb := SizeOf(SI);
M> SI.dwFlags := STARTF_USESHOWWINDOW;
M> SI.wShowWindow := SW_HIDE;
M>CmdParam := 'Extractor.exe '+IntToStr(ProcessID)+' '+FileName;
M> if CreateProcess(nil,PChar(CmdParam), nil, nil, False,
M> DETACHED_PROCESS, nil, nil, SI, PI) then begin
M> CloseHandle(PI.hThread);
M> CloseHandle(PI.hProcess);
M> //Application.Terminate; //Эту строчку я спецально для теста коментирую.
M>end;
M>В дочерней задаче
M> ProcessID := StrToInt(ParamStr(1));
M> ProcessHandle := OpenProcess(PROCESS_SET_INFORMATION, false, ProcessID);
M> WaitForSingleObject(ProcessHandle, INFINITE);
M>Неждет!
M>Что не так?
а ф-и до WaitForSingleObject отрабатывают без ошибок ? (то есть ProcessHandle в OpenProcess возвращается валидный ?)

* thriving in a production environment *
Пока на собственное сообщение не было ответов, его можно удалить.