Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.07;
Скачать: CL | DM;

Вниз

Handle шпион   Найти похожие ветки 

 
BDRON   (2002-01-08 18:12) [0]

Подскажите, плз, как сделать прогу, которая не имея собственной формы, находясь в Tray сохраняла куда-либо Handle нового открытого окна. Мне непонятно как сделать чтобы она постоянно следила за изменением Handle, т.е. открытием нового окна ведь сама программа будет не активна.


 
Юрий Зотов ©   (2002-01-08 18:23) [1]

И снова SetWindowsHookEx.


 
Fellomena   (2002-01-09 12:26) [2]

2 Юрий Зотов, BDRON:
не обязательно hook использовать. Можно просто при запуске программы искать все открытые окна (FindWindowsEx) и записывать их handles в некий список, потом по таймеру (хм... мда, hook получше будет) снова считывать все handles открытых окон и сравнивать с тем, что в списке !





 
Юрий Зотов ©   (2002-01-09 12:46) [3]

> Fellomena (09.01.02 12:26)

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

Результат - окно отслежено не будет. А хук с отловом WM_CREATE сработает в любом случае.


 
Fellomena   (2002-01-09 13:25) [4]

2 Юрий Зотов:
угу... так и есть, но я в качестве варианта предложила...
некоторым просто hook-и писать сложно. (лично я долго разбиралась в механизмах использования hook-ов и до сих пор не понимаю некоторых вещей )

И к тому же, позвольте спросить, разъяснилась ли ситуация по поводу CallNextHookEx ?
Т.е. когда мы ставим несколько глобальных hook-ов на одно и тоже сообщение...
Вы, приведя пример в этом форуме, сами сказали, что он выглядит несколько подозрительно, несмотря на то, что под Win98 он работает.
Неужели создатели Windows не предусмотрели ничего более простого для передачи SysHook (SysHook := SetWindowsHookEx(...)), кроме как механизм MemoryMapedFiles ?
Как-то это неудобно, однако.


 
Виктор Щербаков ©   (2002-01-09 13:32) [5]

>Неужели создатели Windows не предусмотрели ничего
>более простого для передачи SysHook
>(SysHook := SetWindowsHookEx(...)), кроме как механизм >MemoryMapedFiles ?
>Как-то это неудобно, однако.

Посмотри SDK Kernel Objects, может чё нибудь более удобное найдешь.


 
Fellomena   (2002-01-09 13:37) [6]

2 Виктор Щербаков:
да искала... -> failed 8(
И ещё - ведь сообщение доходит до системной ловушки, которая стоит в голове очереди, в любом случае - даже если мы не делаем CallNextHookEx - так же ?
Судя по моим экспериментам - именно так, но тогда возникают некоторые вопросы...


 
Виктор Щербаков ©   (2002-01-09 13:50) [7]

Ну ясно же написано:

Windows does not call the hook procedures installed before the current hook procedure was installed.

Т.е. всё решает вызов CallNextHookEx или его отсутствие.


 
Fellomena   (2002-01-09 14:00) [8]

2 Виктор Щербаков:
ты наверное меня не понял...
Если я ставлю несколько глобальных hook-ов и не делаю CallNextHookEx, то конечно же выполнится только последний поставленный hook, а те что перед ним - не сработают.
Но есть такое понятие как системный hook, который ставится не пользователем, а присутствует в системе как таковой. Так вот до него, как мне показалось, всегда сообщение доходит, несмотря на то вызывали мы CallNextHookEx или нет.



Страницы: 1 вся ветка

Текущий архив: 2002.03.07;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
7-19368
sedoy
2001-11-29 18:16
2002.03.07
одинаковые номера HDD


6-19289
Dennis1809
2001-12-18 17:49
2002.03.07
HTML --> Нормальный текст HEEELP !!!


3-19063
AlexRush
2002-02-07 13:22
2002.03.07
ADO Connection String BuidDialog в RunTime...


6-19270
Cepera
2001-12-04 01:26
2002.03.07
Дьявольские API функции для посчета траффика


3-19062
alex_dorin
2002-02-07 14:56
2002.03.07
фильтр для таблицы БД informix