завершение подпроцесса в случае зависания (Win) - PullRequest
0 голосов
/ 19 июля 2011

У меня есть процесс под названием «Агент», он порождает новый процесс под названием «Соединение».Этот процесс "Connect" загружает сервисные библиотеки DLL.Процесс «Connect» запускает подпроцесс (cmd.exe), я хотел бы знать, если по каким-либо причинам загруженный dll вызывает зависание или сбой, как обеспечить завершение «cmd.exe».

1 Ответ

0 голосов
/ 20 июля 2011

Используйте CreateProcess для запуска нового процесса.Включает в себя настройку и передачу в структуру PROCESS_INFORMATION: которая будет содержать дескриптор нового процесса (hProcess), если вызов CreateProcess работает.

Теперь вы можете сделать WaitForSingleObject для этого дескриптора процесса, чтобы увидеть, когдапроцесс заканчивается.WaitForSingleObject позволяет установить тайм-аут, если объект не запускается (т. Е. Процесс не завершается), и, следовательно, выполнить действие (я полагаю, TerminateProcess).

...