Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.17;
Скачать: [xml.tar.bz2];




Вниз

Wait Process 


erik   (2001-11-15 23:35) [0]

У меня стандартная проблема надо отследить завершение родительской задачи.
//Start в главной задаче
ProcessID := GetCurrentProcessID;
ZeroMemory(@SI, SizeOf(SI));
SI.cb := SizeOf(SI);
SI.dwFlags := STARTF_USESHOWWINDOW;
SI.wShowWindow := SW_HIDE;

CmdParam := "Extractor.exe "+IntToStr(ProcessID)+" "+FileName;
if CreateProcess(nil,PChar(CmdParam), nil, nil, False,
DETACHED_PROCESS, nil, nil, SI, PI) then begin
CloseHandle(PI.hThread);
CloseHandle(PI.hProcess);
Application.Terminate;
end;
В дочерней задаче
ProcessID := StrToInt(ParamStr(1));
ProcessHandle := OpenProcess(PROCESS_SET_INFORMATION, false, ProcessID);
WaitForSingleObject(ProcessHandle, INFINITE);
Неждет!
Что не так?



paul_shmakov   (2001-11-16 11:30) [1]

так, скорее всего, родительский процесс уже успевает завершиться. и OpenProcess возвращает nil.



erik   (2001-11-16 13:59) [2]

Нет а Application.Terminate убирал и нехрена неработало!



erik   (2001-11-16 14:21) [3]

Если найдутся грамотные люди может быть подскажут как красиво получить ProcessID родителя? У меня возникло ужастное подозрение, что мой код неработает из за отсутствия SYNCHRONIZE or PROCESS_SET_INFORMATION в OpenProcess. Но SYNCHRONIZE неподерживается в 95-98!
Что делать? Неужели никто незнает!? Я системным програмированием почти незанимаюсь, все по базам данных. Так, что мне простительно незнание этого факта. Кто тут умный отзовись.



erik   (2001-11-16 16:57) [4]

Действительно OpenProcess возвращает ошибку. А что делать? Как мне
подождать завершения породившей задачи.



erik   (2001-11-16 19:25) [5]

Все парни несуетитесь. Я исправил в CreateProcess надо поставить CREATE_DEFAULT_ERROR_MODE! И все.




Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.17;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.025 c
1-52599           greenrul              2001-12-29 14:42  2002.01.17  
Почему random(4) всегда возвращает 0???


14-52637          Sobesednic            2001-11-20 22:56  2002.01.17  
В чем разница Delphi 6 Enterprise(144mb) от Delphi 6 Personal(140mb)


3-52521           Anvarchik             2001-12-17 14:48  2002.01.17  
TField и замена текста при открытии.


14-52654          Tosov                 2001-11-22 00:37  2002.01.17  
http://delphi.mastak.ru/articles/advises/index.html


14-52636          Beat                  2001-11-20 13:27  2002.01.17  
Moderator, можа ты знаешь когда появится Builder 6?