用WH_CALLWNDPROC钩子监视SendMessage消息的传递
本帖最后由 leocamilla 于 2018-4-11 13:15 编辑图上是我根据论坛大神指点写的demo,发现钩子句柄取不到 g_hHook=0 ,不知是哪里错了,求指点@2402436533 系统是win7 64位
本帖最后由 2402436533 于 2018-4-11 14:00 编辑
BOOL CHookToMainThread::Hook()
{
m_hGameWnd = GetHwnd();
if(!m_hGameWnd)
return FALSE;
auto thread = GetWindowThreadProcessId(m_hGameWnd, NULL);
m_hHook = SetWindowsHookEx(WH_CALLWNDPROC, CallWndProc, NULL, thread);
if(!m_hHook)
return FALSE;
return TRUE;
}
估计你线程ID未填写,填你发送消息的那个线程 ,一般来说填GetCurrentThreadId(),另外callwndproc里面筛选自定义消息
Ps:另外我不是大神,在这个众牛齐聚的论坛里感觉我是最菜的。
{:sweat:}
兄弟,易语言支持 X64 ? @2402436533 非常感谢你的demo,获取不到钩子句柄的原因我测试了下,改为dll注入是正常的,不过又发现个问题,CWPSTRUCT这个结构体的第三个参数wParam对应的应该是SendMessage这个命令的第4个参数对吧?这个参数一直获取到0是什么情况呢 CWPSTRUCT::wParam 一般对于着消息类型 SendMessage的第三个参数 lParam同理。
页:
[1]