Главная страница
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.008 c
3-19082
Tra
2002-02-07 18:52
2002.03.07
Как результат запроса сохранить в txt файл, чтобы потом загрузить на сервер по ftp ?


7-19355
bios_i_ego
2001-12-01 13:06
2002.03.07
В Паскале было Port


1-19173
AVolkov
2002-02-21 17:55
2002.03.07
Проблема перевода компоненты с 5 на 6 Delphi.


14-19335
Ирина
2002-01-23 20:09
2002.03.07
описание структуры баз данных 1С


3-19102
Siberia
2002-02-11 11:45
2002.03.07
Подскажите где взять компоненты для печати