Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как отловить событие создания или прекращения процесса. [D7, WinXP]


demonyator ©   (2003-10-30 00:41:00) 

Подскажите, каким образом можно "узнавать" о создании нового порцесса в системе.


demonyator   (2003-10-30 15:08:00) [1]

а как этот самый Create Process перехватить? Через AppInit_DLLs не всё отлавливается (например calc.exe).


DVM   (2003-10-30 13:11:00) [2]

тогда незачем уже


dvp   (2003-10-30 12:43:00) [3]

тогда зачем таймер


DVM   (2003-10-30 12:19:00) [4]


> а если процесс выполнялся менее интервала таймера

может +перехват CreateProcess


dvp   (2003-10-30 12:15:00) [5]

а если процесс выполнялся менее интервала таймера


DVM   (2003-10-30 12:14:00) [6]

Тогда плюс к этому таймер и сканирование списка процессов


Digitman   (2003-10-30 12:10:00) [7]


> dv


верное замечание.
мне это следовало бы отметить.


dvp   (2003-10-30 11:15:00) [8]

Если не GUI-приложение то никакой хук тут не поможет
только Ring-0


Digitman   (2003-10-30 11:14:00) [9]

любой, предусмотренный параметром idHook ф-ции SetWindowsHookEx, когда последняя вызывается именно для установки глобального (не локального !) хука

достаточно однократного вызова SetWindowsHookEx с любым из допустимых значений этого параметра, чтобы указанная хук-DLL была автоматически внедрена системой во все существующие процессы

после установки глоб.хука всякий раз когда стартует новый процесс, система будет автоматически внедрять экз-р хук-DLL в АП этого процесса, при этом код инициализации библ-ки получит управление, что, собственно, и нужно.

когда процесс завершается, экз-р внедренной ранее в его АП хук-DLL будет автоматически выгружен, при этом код деинициализации библ-ки так же получит управление


dvp   (2003-10-30 10:50:00) [10]

2Digitman
Какой это "любой глобальный хук"?


Digitman   (2003-10-30 08:48:00) [11]

ставишь любой глоб.хук
в процедуре инициализации в обработчике DLL_PROCESS_ATTACH при пом. GetModuleFileName(0) получаешь полный путь к файлу модуля хост-процесса, отсылаешь эту инф-цию любым удобным способом приложению-монитору


Наверх

Титульная страница Поиск, карта сайта Написать письмо