![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запускаемые приложения [D6, Win2k]
Turalyon © (2002-02-05 13:41:00)Помогите пожалуйста с таким вопросом.
Необходимо, вести лог запускаемых на компьютере приложений, так вот вопрос, как отловить сообщение системы о создании нового окна (запуске приложения, я в курсе что это не одно и тоже).
Можно отослать меня в хелп, но лучше поконкретнее. Заранее спасибо.
Turalyon (2002-02-06 16:19:00) [1]>Fellomena
Спасиб большое. Полез читать. :)
Fellomena (2002-02-06 14:58:00) [2]Глянь
http://www.delphikingdom.com/helloworld/usesdll.htm
там есть пример глобального hook-а, работающий...
Только есть некоторые казусы в примере, например несколько таких же hook-ов, поставленных аналогичным способом работать не будут, будет отрабатывать только последний.
Ну если ты один hook так как там написанно поставишь - то всё ok будет.
... ну и конечно при установке hook-а тебе не WH_GETMESSAGE надо использовать ;)
Дальше - смотри SDK 8)
Turalyon (2002-02-06 08:26:00) [3]>Fellomena
Спасибо большое за советы, в общем по поводу второго способа, я так и подумал с самого начала, в общем так и начинал делать...
А по поводу 1 способа, я понимаю, что это правильнее, но вчера облазил кучу всяких хелпов про hook, все что я нашел - это в основном общаая информация. Может быть у кого есть статьи с примерами, или просто примеры??? Был бы очень признателен.
Fellomena (2002-02-05 13:50:00) [4]Задача решается несколькими путями:
1). ставишь hook (устанавливаешь из dll) на создание процесса и в процедуре его обработки записываешь всё что тебе надо в лог-файл, при этом лучше это дело синхронизировать, что бы конфликтов не возникало при одновременном запуске прог и попытки писать в уже открытый файл.
2). По таймеру делаешь "слепок" всех процессов и сравниваешь с предыдущим слепком, если что-то прибавилось - пишешь в лог то, что прибавилось - этот метод коряв, но работать будет (хреновато).
Лучше конечно ловушку ставить.