首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

大局钩子对指定线程无效

2013-03-25 
全局钩子对指定线程无效想获取第三方工具界面上的某个EDIT控件的文件,该EDIT上的文本是变化的,想通过钩子

全局钩子对指定线程无效
想获取第三方工具界面上的某个EDIT控件的文件,该EDIT上的文本是变化的,想通过钩子获取该EDIT的WM_GETTEXT消息,每次检测到有WM_GETTEXT就重新获取EDIT上的文本,可是我通过下面的代码怎么也抓不到WM_GETTEXT消息,但通过SPY++是可以看到的。求解,十分感谢!
注意:代码中sethook的参数为第三方程序的线程ID。


LRESULT CALLBACK FunProc(
  int code,       // hook code
  WPARAM wParam,  // virtual-key code
  LPARAM lParam   // keystroke-message information
)
{
MSG * pMsg=(MSG*)lParam;
switch(pMsg->message)
{
case WM_GETTEXT:
                 //。。。。处理
UnhookWindowsHookEx(g_hKeyboard);
}

return ::CallNextHookEx(g_hMouse, code, wParam, lParam);
}


void SetHook(DWORD dwThreadId)
{
//g_hWnd=hwnd;
//g_hMouse=SetWindowsHookEx(WH_MOUSE,MouseProc,GetModuleHandle("Hook"),0);
g_hMouse=SetWindowsHookEx(WH_CALLWNDPROC,FunProc,GetModuleHandle("Hook"), dwThreadId);
DWORD errorCode = GetLastError();
}
[解决办法]
可能WM_GETTEXT被屏蔽了。
[解决办法]
用API钩子吧,
[解决办法]
推荐使用Spy4Win软件。

热点排行