gpt4 book ai didi

c++ - 在 Hook 过滤器函数中过滤 Windows 消息

转载 作者:太空宇宙 更新时间:2023-11-04 12:28:09 25 4
gpt4 key购买 nike

我正在尝试使用 Windows Hook 为另一个应用程序检索消息。我已经使用 SetWindowsHookEx 设置了一个 WH_GETMESSAGE Hook 。这是通过 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。我知道应用程序正在接收来自 Spy++ 的 WM_COMMAND 消息。如果我去掉 IF 语句,MessageBox 会在收到各种消息时一遍又一遍地创建。

最佳答案

您确定您分别 Hook 了正确的窗口或正确的消息吗?在某些情况下,会生成 WM_SYSCOMMANDWM_MENUCOMMAND 而不是 WM_COMMAND

您的代码看起来不错,您是否也尝试过将传入的消息转储到控制台?

关于c++ - 在 Hook 过滤器函数中过滤 Windows 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/875950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com