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

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

Необходимо знать о каждом созданном процессе в системе [D7, WinXP]


demonyator ©   (2004-03-10 01:35:00) 

От моей программы требуется считать время работы чужих программ для составления статистики в интернет клубе. Мне кажется, что нужно "ловить" создание процессов (как это наверняка делает Spider Guard) Но вот не знаю как, помогите решить проблему.


demonyator   (2004-03-14 16:17:00) [1]

Digitman, а на что в таком случае будет наиболее рационально ставить хук? WH_ ?


Digitman   (2004-03-13 16:10:00) [2]


> но там возможно ловить только создание и разрушение окон


где "там" ?

хук-модуль автоматически загружается системой в ВАП каждоговновь стартующего GUI-процесса, еще дотого как процесс этот создает самое первое (главное) окно

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


demonyator   (2004-03-13 16:01:00) [3]

WH_SHELL работать будет только при создании окон верхнего уровня.
Я ставил WH_CBT хук, но там возможно ловить только создание и разрушение окон, а нужно ловить именно процессы.


Tyama   (2004-03-11 23:57:00) [4]

А как насчёт HOOKа? На WH_SHELL поставь и записывай все создаваемые процессы (Точнее окна)...


demonyator   (2004-03-11 18:36:00) [5]

Дело в том, что так я и делаю сейчас ... повесил таймер и ганяю. Но мне показалось, что есть более изящный способ. Ведь Spider всё-таки делает это как-то и совсем не тормозит систему. Может быть кто-то поделится кодом. Ведь наверняка многие сталкивались с подобной проблеммой. Неужели все пошли по пути "таймера"?


coban2k   (2004-03-10 18:16:00) [6]

Попробуй определять все процессы каждые n миллисекунд, на прозводительности это особо не отобразится. Для ловли необходимо реализовывать перехват API, что прежде всего небезопасно в плане стабильности всей системы (одна из лучших библиотек перехвата API для дельфи - http://www.madshi.net).


Наверх

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