ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #2  
Старый 08.05.2010, 01:40
Аватар для greki_hoy
greki_hoy
Познающий
Регистрация: 04.03.2010
Сообщений: 32
Провел на форуме:
32525

Репутация: 23
По умолчанию

2desTiny

WH_KEYBOARD
The KeyboardProc hook procedure is an application-defined or library-defined callback function used with the SetWindowsHookEx function. The system calls this function whenever an application calls the GetMessage or PeekMessage function and there is a keyboard message (WM_KEYUP or WM_KEYDOWN) to be processed.

очевидно что хук обработчик будет вызыватся только для асинхронных сообщений посланных в поток который создал окно через PostMessage если этому окну отправят синхронное сообщение SendMessage хук обработчик не вызовется

WH_GETMESSAGE
The GetMsgProc function is an application-defined or library-defined callback function used with the SetWindowsHookEx function. The system calls this function whenever the GetMessage or PeekMessage function has retrieved a message from an application message queue. Before returning the retrieved message to the caller, the system passes the message to the hook procedure.

таже история обрабатывать будет сообщения асинхронно отправленные окну PostMessage которые явно достаются из очереди GetMessage PeekMessage на них будет реагировать а на синхронные SendMessage гордо промолчит

вообщем эти два вида хука вызываются только для обработки асинхронных сообщений
в тот момент когда они вынимаются из очереди GetMessage или PeekMessage
я когда то тоже с этим столкнулся мне надо было и синхронные и асинхронные сообщения вылавливать неважно как передавали сообщения окну через PostMessage или через SendMessage ловил все сообщения я сделал так выделяем shared секцию в DLL перед установкой хука SetWindowsHook пишем в нее хендл окна сообщения от которого надо похукать инжектим себя через WH_GETMESSAGE как только
получаем DLL_PROCESS_ATTACH смотрим в общей секции хендл окна и делаем SetWindowLong сабклассинг этого окна и фильтруем синхронные и асинхронные сообщения например отправляем себе в программу WM_COPYDATA потом когда из своей проги делаем UnhookWindowsHookEx ловим DLL_PROCESS_DETACH и снова SetWindowLong ставим на место старый обработчик и собствено после этого длл отключается от адресного пространства ну и Вам можно так же установить хук
и в функции сабклассинга смотреть нужные Вам WM_KEYDOWN или WM_CHAR
посути Вам хук в этом сценарии нужен только для того чтобы Windows автоматически DLL инжектила в интересующий вас процесс

Последний раз редактировалось greki_hoy; 08.05.2010 в 08:21..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[TIcqclient] функция SendMessage Sunstrider С/С++, C#, Delphi, .NET, Asm 5 17.04.2010 15:41
Хуки Winsock функций Chrome~ С/С++, C#, Delphi, .NET, Asm 3 31.08.2009 18:59
Anti admin xp АнтиАдмин 6 12.12.2004 00:24



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ