Главная страница
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
1-19230
Kolyan
2002-02-12 17:30
2002.03.07
Дочерняя форма в Dll


3-19042
mr_X
2002-02-05 17:12
2002.03.07
Between или not Between


1-19214
macinsoft
2002-02-19 13:39
2002.03.07
Копирование свойств объекта


4-19378
otimist
2001-12-21 16:37
2002.03.07
WinAPI


4-19398
Павел2
2002-01-08 19:29
2002.03.07
Что шлет программе TaskManager при нажатии SwitchTo?