|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.01.2010, 01:33 | #1 |
Регистрация: 19.09.2007
Сообщений: 4
|
правильное снятие хука
сдается мне, что сделать UnhookWindowsHookEx не всегда достаточно. dll-ка с хуком остается заблокированной, причем "держат" ее запущенные после установки хука, приложения. "отваливают" только при активации их окна... по крайней мере эксперементально так.
это особенность системы или как-то по-другому надо снимать хук? вобщем проблема возникает при разработке: блокированные dll-ки не заменить. unlocker их как-то коряво освобождает - приложения, запущенные после установки хука, валятся... |
11.01.2010, 02:52 | #2 |
Регистрация: 19.09.2007
Сообщений: 4
|
нашел тут похожую тему без решения и доковырял сам...
судя по тому, что dll-ки отваливались эксперементально при активации окна, т.е. по сути при поступлении в очередь новых сообщений, пришла мысль после выгрузки хука, посылать этим окнам пустое сообщение "wm_user, 0, 0" и... все стало ок )) короче, ларчик просто открывался. возможно, это не совсем "правильное" решение, но главное - рабочее. если знаете другое, поделитесь )) з.ы. в тестовой версии хендлы окон собирались через длл, но вспомнил про брудкаст и сделал проще: SendMessage(HWND_BROADCAST, RegisterWindowMessage('unHookAll'), 0, 0); работает! Последний раз редактировалось majestic; 11.01.2010 в 03:19. Причина: дополнение |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Функция-фильтр глобального хука. | Katka | Win Api | 3 | 30.03.2009 10:57 |
Снятие образов и запись дисков | JamS007 | Компоненты Delphi | 0 | 09.11.2008 19:23 |
Снятие скриншота в МСДОС | Black_Ak24 | Свободное общение | 4 | 17.06.2008 19:03 |
Как мне в обработчике хука узнать хендл окна? | vitalik007 | Win Api | 5 | 16.05.2008 09:34 |