键盘HOOK的如何失效? 我想用WH_KEYBOARD HOOK实现了一个键盘捕捉(system wide),但实现以后却发现并没有达到预想的效果(只有在我的程序处于激活状态时,才能起作用,当程序最小化或非激活时,就失效了),请问这是什么原因,如何解决!!!!比如:VC下的SPY++是如何做到的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你做的是否为全局钩子,参考这个例子http://www.codeproject.com/dll/keyboardhook.asp 是全局钩子:SetWindowsHookEx(WH_KEYBOARD,Keyboard_Proc,g_hinstDLL,0);g_hinstDLL 是全局变量 有可能出现的情况是,g_hinstDLL为NULL,即没有成功添加到hook链中。你调试一下就知道了!如果是这样的话,你可是采用LoadLibrary来获得DLL的handle, 在我的Keyboard_Proc中,我调用了PostMessage函数,发出我自定义的消息UM_KEYBOARD,调用方法是:PostMessage(hwndPost,UM_KEYBOARD,wParam,lParam);( hwndPost是我自己的主窗口, wParam,lParam是直接使用Keyboard_Proc中的两个参数)然后再在我的主程序中对这个消息进行处理。好象有书说,在WIN95以后就不能这样做了,但又不知改为用什么方法实现通讯了?(是WIN32下采用了Local Input State Processing 技术所造成的)有哪位知道的,告诉一声!!! 有可能出现的情况是,g_hinstDLL为NULL,即没有成功添加到hook链中。你调试一下就知道了!你可以采用动态加载DLL的方法获得g_hinstDLL,我在2000下写Hook程序的时候老碰到instDll = null TO SoftAgent在哪调用LoadLibrary,instDLL不就是DLL本身的HMOUDLE吗? 在你调用dll的进程中你要启动HOOK之前!我也不明白为什么有时候instDll为null.在2000下! 在你调用dll的进程中你要启动HOOK之前!instDLL是DLL本身的HMODULE,但在2000下有时候为null.我也不明白为什么.:-) DockPane 用代码控制其大头针固定窗口效果 -- 大佬们求助!!! 悬浮窗口中响应NM_CLICK VC6 改变STATIC文本 的字体 非模对话框的问题 CheckBox内嵌于MSFlxGrid怎么让checkbox跟随滚动条滚动 想学习图像处理,不知从何入手,请有经验的朋友指点。 CFileFind怎么找不到最后的一个文件? 我想问一个关于ioctlsocket的问题,求高手助我一力 紧急求助,为什么我没法把条目加入CComboBox控件 请问关于串口通信的问题! 我的MSDN为何无法使用? 如何找到本机中的组和用户?
http://www.codeproject.com/dll/keyboardhook.asp
SetWindowsHookEx(WH_KEYBOARD,Keyboard_Proc,g_hinstDLL,0);g_hinstDLL 是全局变量
如果是这样的话,你可是采用LoadLibrary来获得DLL的handle,
UM_KEYBOARD,调用方法是:
PostMessage(hwndPost,UM_KEYBOARD,wParam,lParam);
( hwndPost是我自己的主窗口,
wParam,lParam是直接使用Keyboard_Proc中的两个参数)
然后再在我的主程序中对这个消息进行处理。好象有书说,在WIN95以后就不能这样做了,但又不知改为用什么方法实现通讯了?(是WIN32下采用了Local Input State Processing 技术所造成的)
有哪位知道的,告诉一声!!!
你可以采用动态加载DLL的方法获得g_hinstDLL,我在2000下写Hook程序的时候老碰到instDll = null
我也不明白为什么有时候instDll为null.在2000下!
instDLL是DLL本身的HMODULE,但在2000下有时候为null.
我也不明白为什么.:-)