在线求助,跨进程拦截WM_SETFOCUS消息

Goodreams Goodreams 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
直接上代码吧
LRESULT CALLBACK KeyProc ( int code, WPARAM wParam, LPARAM lParam)
{
MSG *lpMsg;
lpMsg = (MSG*)lParam;
if(lpMsg->message==WM_SETFOCUS)
{
::MessageBox(NULL,"拦截到消息","",MB_OK);
}

return CallNextHookEx (gkeyhook,code,wParam,lParam);
}

void __stdcall SetHidehook ( DWORD threadID)
{
gkeyhook = ::SetWindowsHookEx ( WH_GETMESSAGE,(HOOKPROC) KeyProc, ::GetModuleHandle ("xxx.dll"), threadID) ;
}


void __stdcall UnHidehook (HWND ahwnd)
{
UnhookWindowsHookEx (gkeyhook) ;
}

现在测试到,把if(lpMsg->message==WM_SETFOCUS)条件去掉,可以MessageBox弹出。加上条件就弹不出了,求助解决!!
先在此谢过。
...全文

相关推荐

评论 21
收藏 已收藏
分享
返回顶部
Goodreams
VC/MFC 16,550 成员 421,606 内容