Хук Wh_getmessage.

  • Автор темы solova
  • Дата начала
S

solova

#1
Я так и не понял ловит ли (WH_GETMESSAGE) WM_COMMAND-ы.
В нэте находил посты где писали что он только с Postmessa-джами работает,
а так же находил посты где даже код предоставляли который ловит (но для локалки)
Если всё таки можно отловить:
Взгляните ктонить на мой код, что там не так.(там ещё отлов"PostMessag-а"WM_SYSCOMMAND)<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Код</div></div><div class="sp-body"><div class="sp-content">
C++:
...
hHook = SetWindowsHookEx(WH_GETMESSAGE,GetMsgProc,(HINSTANCE)hDll,dwThrd);
...
LRESULT CALLBACK GetMsgProc(int nCode,WPARAM wP,LPARAM lP)
{
if(nCode >= 0) //HC_ACTION
{
LPMSG msg = (LPMSG)lP;
if(wP==PM_REMOVE)
{
if((msg->message==WM_SYSCOMMAND)&&(LOWORD(msg->wParam)==57665))//Spy++ >>PostMessage
{
MessageBox(NULL,L"WM_SYSCOMMAND",L"От Хука",MB_OK);
}
}
if((msg->message==WM_COMMAND)&&(LOWORD(msg->wParam)==57665))//Spy++ >>SendMessage
{
MessageBox(NULL,L"WM_BUTTON",L"От Хука",MB_OK);
}
}
return CallNextHookEx(hHook,nCode,wP,lP);
}
WM_SYSCOMMAND ловит нормально(правда без if(wP==PM_REMOVE) ловит сообщение дважды)
а WM_COMMAND не могит поймать.

ПыСы: а if(wP==PM_REMOVE) что проверяет?
типа?
- "уже выполненный Мессадж удаляется из списка Постмессаджов"
или на оборот?
- "начинает выполнятся ,но не удаляется" (удалится после выполнения)