Re: Process Wait
От: Igor Soukhov  
Дата: 16.11.01 12:28
Оценка: 1 (1)
Здравствуйте 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 *
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.