Войти

Показать полную графическую версию : Как отследить процесс завершения приложения


fossil
25-04-2004, 19:04
Нужно написать программу, которая бы отслеживала завершение какого-либо определенного процесса (диспетчер задач Windows). К примеру я поместил в процесс CMD.EXE, и при его завершении в программе должно выводиться сообщение. Как это сделать?

Prisoner
26-04-2004, 04:28
Поглядите в сторону SetWindowsHookEx (http://firststeps.narod.ru/winapi/hook/35.html) . WH_SHELL в вашем случае.

suxxl
26-04-2004, 16:33
имхо немного не верно ...
WH_SHELL отслеживает уничтожение/создание окна (как и CBT)
а если процесс окно не создает??? тут нужно или по таймеру проверять сидит ли процесс в памяти, или писать драйвер... других вариантов не вижу ...

fossil
26-04-2004, 18:13
suxxl
Примерно такая прога: При нажатии на кнопку создается скрытый процесс (sw_hide), через несколько секунд, он сам закрывается, и при его закрытии нужно выводить сообщение в Label "Закрылась прога".

Добавлено:

Кстати пишу на Delphi 7

suxxl
27-04-2004, 01:36
fossil
если вызываешь своей прогой процесс, то просто по коду возврата смотри, имхо

fossil
27-04-2004, 08:27
suxxl
А ты не мог бы какой-нибудь пример вставить... или ссылку на пример. А то до меня не совсем доходит...

Добавлено:

Ну вот к примеру даю команду
Winexec('cmd /ipconfig',sw_hide);
он сам закрывается через секунду. И мне нужно вывести сообщение в проге.
Допиши что еще нужно...

suxxl
27-04-2004, 13:01
ShellExecute() смотри в МСДН

bgg0408
27-04-2004, 14:31
http://www.codeproject.com/threads/procmon.asp?df=100&forumid=3523&exp=0&select=771267
PsSetCreateProcessNotifyRoutine
Работает под NT.

fossil
27-04-2004, 19:07
suxxl
bgg0408
Thanks!! :)




© OSzone.net 2001-2012