-3
我試圖如在下面的代碼中提到打印掛鉤過程GetMsgProc內的消息來調用GetMsgPrc:無法使用WH_GETMESSAGE鉤
LRESULT WINAPI GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)
{
printf("inside hook proc");
return CallNextHookEx(getmsghook, nCode, wParam, lParam);
}
void main()
{
HINSTANCE hins;
hins = GetModuleHandle(NULL);
getmsghook = SetWindowsHookEx(WH_GETMESSAGE, (HOOKPROC) GetMsgProc, hins, 0);
MSG message;
while (GetMessage(&message, NULL, 0, 0))
{
TranslateMessage(&message);
DispatchMessage(&message);
}
UnhookWindowsHookEx(getmsghook);
}
// ---------- -------------------------------------------------
我的猜測是,對於每個鍵盤或鼠標輸入,應該打印該消息。但我無法弄清楚爲什麼沒有發生。能否請你幫忙。
如果我沒有記錯,該鉤子只捕獲窗口句柄中的_sent_消息。 –
@ 500-InternalServerError:不一定。如果我用WH_MOUSE_LL替換WH_GETMESSSAGE,它會起作用。 – Roger1990
@ 500-InternalServerError。 'WH_GETMESSAGE'捕獲通過'(Peek | Get)Message()'傳遞的任何消息,無論它是發佈,發送,廣播等。你可能會想'WH_CALLWNDPROC/RET',它捕獲所有發送的消息到一個窗口。 –