精易模块的类_钩子 在XP下不能使用,
详细BUG提交
https://bbs.125.la/forum.php?mod ... 14647898&extra=
暂时没有管理员回复,然后自己的开始折腾了。
来来回回才发现其实模块的钩子方式并不太合理兼容性太差。
主要是2个方便
1注册方式
模块是使用
这种方式在XP下无效,需要使用下面的方式来注册
注册成功后发现在XP下莫如其名的奔溃 奔溃 奔溃 各种奔溃。
后来发现模块使用的回调方式都是注入代码,经过测试模块的 程序_执行整数子程序 (全_钩子相关.键盘钩子回调函数, wParam, struct.hwnd, 0)是导致奔溃的主要原因,找到问题后干脆自己写了。
|
键盘钩子_过程 | 整数型 | | |
nCode | 整数型 | | | | wParam | 整数型 | | | | lParam | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | struct | struct | | | 如果真 (nCode = #HC_ACTION ) RtlMoveMemory_整数型 (取数据_通用型 (struct ), lParam, 28 )如果真 (wParam = 256 或 wParam = 257 或 wParam = 258 ) 程序_执行整数子程序 (全_钩子相关.键盘钩子回调函数, wParam, struct.hwnd, 0 )返回 (CallNextHookEx (全_钩子相关.键盘钩子句柄, nCode, wParam, lParam))
其实模块的这种回复回调,置代码的方式不不好。导致很多BUG建议钩子不要使用模块直接自己写几行代码调用。
最后附上源码,经过测试无BUG不会奔溃。
键盘钩子.zip
(55.77 KB, 下载次数: 377)
|