Форум: "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