Ожидание завершения работы всех процессов
Возникла такая проблема: как узнать имена процессов (возможно и имена потоков этих процессов), созданных другим процессом и остановить работу своей программы, пока не завершатся все порожденные процессы?
Копай в сторону CreateToolhelp32Snapshot и ZwQuerySystemInformation. Вторая более мощная, в ней вся информация.
Цитата:
Копай в сторону CreateToolhelp32Snapshot и ZwQuerySystemInformation. Вторая более мощная, в ней вся информация.
На счет CreateToolhelp32Snapshot мне все понятно - выводит список всех процессов и потоков, принадлежащих процессу; вопрос стоит в том как узнать имя дочернего процесса, хотя задача больше стоит в остановке работы моей программы до тех пор, пока все порожденные процессы определенным процессом не завершат свою работу...
С помощью CreateToolhelp32Snapshot можно узнать ParentID интересующих процессов. После чего, используя функцию WaitForMultipleObjects, дождаться их завершения.
Немного неправильно поставил условие задачи, поправлюсь: имеется в системе некий процесс, который завершая свою работу, порождает новый, поэтому функции WaitForSingleObject и WaiteForMultipleObjects не подходят...
Цитата:
С помощью CreateToolhelp32Snapshot можно узнать ParentID интересующих процессов.
Хорошо, попробую так, в чем я сомневаюсь, что получиться... Вообщем буду пробовать...
По поводу имени: из структуры PROCESSENTRY32, GetModuleFileNameEx и т.п.