Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.08.19;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

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

Наверх





Память: 0.45 MB
Время: 0.005 c
3-60514
Александр456
2002-07-30 09:19
2002.08.19
Голова уже ничего не соображает - помогите плиз!!!


1-60682
Edvin
2002-08-05 17:01
2002.08.19
Кириллица в Corel+Delphi


3-60547
Alinka
2002-07-30 18:48
2002.08.19
Мастера, помогите!!


1-60711
dimushkin
2002-08-06 22:48
2002.08.19
ScrollBox


8-60762
Aaz
2002-04-15 08:24
2002.08.19
LoadFromClipboardFormat





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский