Главная страница
    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.44 MB
Время: 0.006 c
14-60811
Дмитрий Баранов
2002-07-23 18:24
2002.08.19
Проектирование бухгалтерских БД


1-60650
Mahmud
2002-08-09 06:41
2002.08.19
Проблемы при формировании отчётов


1-60666
fuxx
2002-08-06 10:16
2002.08.19
C++ Builder и TStringGrid. Неправильно выводит первые строки.


3-60548
lety
2002-07-29 22:51
2002.08.19
Filter и строковые поля


3-60486
Larisa
2002-07-28 21:55
2002.08.19
Подключение к БД на другом компьютере





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский