Я пытаюсь получить сообщения для другого приложения с помощью ловушки Windows. Я установил хук WH_GETMESSAGE с SetWindowsHookEx. Это делается через DLL. В моей функции GetMsgProc (которая должна вызываться всякий раз, когда целевое приложение получает сообщение) я хочу предпринять действия в зависимости от типа сообщения. Однако у меня возникли проблемы с этим оператором if.
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 никогда не создается. Я знаю, что приложение получает сообщения WM_COMMAND от Spy ++. Если я извлекаю оператор IF, MessageBox создается снова и снова, поскольку он получает множество сообщений.