|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июн 23, 2004 17:31:22 Доброго времени суток! Господа, подскажите, пожалуйста, как устнавить хук на сообщения типа "свернуть" и "закрыть" окно. Хотелось бы повесить свой обработчик на эти дела. Заранее спасибо всем. |
|
|
Дата: Июн 23, 2004 19:56:38 Хмм.. У Икзелиона пример хука есть. Там прога перехватывает класс хэндл и еще что-то (не помню) контрола, над которым висит мышка. Там он использует хук мышки. Поройся в СДК на тему хуков или туториал его посмотри. Там вроде есть что-то для системы. Ну и напоследок. Когда получишь хэндл активного окна, у него можно перехватить главную процедуру через GetWindowLong, а там уже как фантазии хватит. По перехвату процедуры смотри пример того же Икзелиона на сабклассинг. Вот, собсно, и все.. |
|
|
Дата: Июн 24, 2004 02:55:24 n0p Все гораздо прозаичнее. uRegMsg = RegisterWindowMessage("SHELLHOOK");
RegisterShellHook(hWnd, 3);
В оконной процедуре по приходе этого сообщения в wParam смотреть HSHELL_WINDOWCREATED, HSHELL_WINDOWDESTROYED. Преимущество в том, что для этого хука не нужна DLL. А если нужен больший контроль, можно юзать стандартные хуки (в нашем случае WH_CBT), но придется делать отдельную DLL. |
|
|
Дата: Июн 24, 2004 06:11:17 Да, я тут опять с недокументированными функциями полез. RegisterShellHook имеет ординал #181 в shell32.dll. Официальная немного измененная ее версия появилась в Win2K под названием RegisterShellHookWindow. В WinXP ее убрали из инклудов, В WinXP SP1 и Win2K3 снова добавили, но предупреждают, что она может не поддерживаться в новых версиях. |
|
|
Дата: Июн 24, 2004 13:15:23 Toxic Т.е. если я хочу сделать многоплатформенную поддержку, то этот вариант не совсем подходит и лучше пользоваться именно хуками? |
|
|
Дата: Июн 25, 2004 04:20:32 С недокументированными функциями сложно что-то сказать. Они могут со временем перейти в разряд официальных (например, SHObjectProperties), могут быть удалены или модифицированы(например, файловые меню), а могут остаться без изменений. Для стопроцентной надежности лучше, конечно, брать WH_CBT. |
|
|
Дата: Июн 25, 2004 14:20:50 Спасибо за разъяснение. А нет ли у кого примера или более менее понятной доки на эту тему? |
|
|
Дата: Июн 26, 2004 02:17:26 Tristania В MSDN хуки расписаны прекрасно. Читай и твори. |
|
|
Дата: Июн 29, 2004 11:52:07 Правка Tristania Zaratustra как-то писал кейлоггер, наверняка и с тобой делился сорцами :) Там хук на клавиатуру, чем не пример? А вообще настоятельно рекомендую PlatformSDK вдумчиво почитать… |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.086 |