Windowsフックを使用して別のアプリケーションのメッセージを取得しようとしています。 SetWindowsHookExでWH_GETMESSAGEフックをセットアップしました。これはDLLを介して行われます。私のGetMsgProc関数(ターゲットアプリケーションがメッセージを受信するたびに呼び出されるはずです)では、メッセージのタイプに基づいてアクションを実行したいと思います。しかし、私はこのif文に問題があります。フックフィルター機能での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