我正在嘗試使用Windows鉤子檢索另一個應用程序的消息。我用SetWindowsHookEx設置了一個WH_GETMESSAGE鉤子。這是通過一個DLL完成的。在我的GetMsgProc函數中(每當目標應用程序收到消息時應該調用它),我想根據消息的類型採取行動。但是,我有這個if語句有問題。在Hook過濾函數中過濾Windows消息
LRESULT CALLBACK MessageHookProcedure(int code, WPARAM wParam, LPARAM lParam){
if(((MSG*)lParam)->message == WM_COMMAND){
MessageBox(NULL,L"The hook procedure was called",L"Test Window",MB_OK);
}
return CallNextHookEx(g_MessageHook,code,wParam,lParam);
}
由於某種原因,MessageBox從不創建。我知道應用程序正在從Spy ++接收WM_COMMAND消息。如果我取出IF語句,MessageBox會一次又一次地被創建,因爲它接收到各種消息。
我認爲你是對的,我必須掛鉤錯誤的窗口。我會檢查我的邏輯。感謝您查看我的代碼。 – JohnG 2009-05-19 01:22:13