钩子无效求助

来源:互联网  时间:2016/8/20 6:36:12

关于网友提出的“ 钩子无效求助”问题疑问,本网通过在网上对“ 钩子无效求助”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 钩子无效求助
描述:

#pragma data_seg(".SHARDAT")
static HHOOK hkb=NULL;
#pragma data_seg()
HINSTANCE hins;
bool installhook()
{
    hkb=SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)KeyboardProc,hins,0);
    return TRUE;
}
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    logwrite("test");
    
    LRESULT RetVal = CallNextHookEx( hkb, nCode, wParam, lParam ); 
    return RetVal;
}
void HookEnd()
{
UnhookWindowsHookEx(hkb);
}
通过LoadLibrary和GetProcAddress,installhook已得到执行了,可是SetWindowsHookEx没有效果,请高手帮助!!!


解决方案1:

hins= AfxGetInstanceHandle(); 有调用吗

解决方案2:

建议你检查SetWindowsHookEx的返回值,如果SetWindowsHookEx执行成功,那问题肯定是logwrite执行不成功。注意DLL中用到的所有全局变量,一定要放到#pragma data_seg(".SHARDAT")...#pragma data_seg(),而且还需要加上#pragma comment(linker, "/section:.SHARDAT,rws")

解决方案3:

可能并没有触发你要勾的消息?你仔细察察很多功能的实现可能和预想的不太一样的

解决方案4:

hins的值在哪里?有没有在InitInstance中得到?
键盘钩子的例子:
http://www.vckbase.com/document/viewdoc/?id=271

上一篇已知一个控制台的进程ID,如何取得其窗体句柄
下一篇求一个函数VC 中如何求双字节的长度解决后马上结贴
明星图片
相关文章
《 钩子无效求助》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)