Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.03.07;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.03.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
1-19255
hex_for_delphi
2002-02-20 06:49
2002.03.07
как управлять мышю


14-19297
Dimka Maslov
2002-01-18 17:37
2002.03.07
Bachelor


1-19197
новенький в Делфи
2002-02-18 21:56
2002.03.07
Матрицы


1-19183
dart
2002-02-18 14:58
2002.03.07
Два вопроса


14-19302
Potemkin
2002-01-18 10:26
2002.03.07
Вопрос по QR3





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский