Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.19;
Скачать: CL | DM;

Вниз

Как отследить существует ли дочерний процесс в системе?   Найти похожие ветки 

 
Starkom   (2002-06-07 12:36) [0]

Я пишу нечто типа дебаггера - при нажатии кнопки Run происходит некая инициализация, затем запускается дочерний процесс. Причем, сам дебаггер должен работать, как обычно. Как мне отследить в какой момент закроется дочерний процесс, чтобы произвести деинициализацию (есть вариант через какой-то промежуток времени через Process32First, Process32Next проверять есть ли он в системе, но это геморрой и все будет тормозить)


 
Внук ©   (2002-06-07 12:42) [1]

Создавайте дочерний процесс с помощью CreateProcess с флагом DEBUG_PROCESS. Тогда вызывающий поток будет уведомляться о событиях в дочернем процессе, в том числе и о завершении главного потока созданного процесса.


 
StAL ©   (2002-06-11 19:21) [2]

Все проще!
var
pi: TProcessInformation;
hp: Thandle;
...............
CreateProcess(..pi.);
hp:=OpenProcess(PROCESS_ALL_ACCESS, False, pi.dwProcessID);
if GetExitCodeProcess(hp) <> STILL_ACTIVE then
ShowMessage("Process terminated");


 
Внук ©   (2002-06-13 09:26) [3]

>>StAL © (11.06.02 19:21)
Все не так просто :) Дело в том, что в моем способе дочерний процесс САМ уведомляет родителя о своей смерти, тогда как в Вашем родитель должен за этим следить :(
Действительно, есть несколько альтернативных способов, но я о них не буду ...



Страницы: 1 вся ветка

Текущий архив: 2002.08.19;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
1-60635
Invega
2002-08-08 19:38
2002.08.19
Как в MainMenu сделать...


7-60867
Project1
2002-06-06 10:10
2002.08.19
Про реестр...


1-60672
MikeFW
2002-08-06 11:05
2002.08.19
Как закрыть открытый узел в ТreeView?


4-60916
darkin
2002-06-16 12:31
2002.08.19
как копировать файлы....???


1-60599
Lampo4ka
2002-08-08 10:08
2002.08.19
Xo4у DelphiX......