文章目录[隐藏]
本课和前几节课全局键盘钩子的区别是,我们把全局键盘钩子做出一个DLL,在易语言主程序里调用这个DLL,这里还没有注入,只是静态调用这个全局键盘DLL。我们开启开一个笔记本,随便输入一些字符,便可以截获。
全局键盘钩子DLL源码:
.版本 2
.子程序 键盘监视, , 公开
.参数 键盘回调子程序, 子程序指针
临时键状态 = 0
键盘首次延时 = 真
键盘hook = SetWindowsHookExA (13, &键盘钩子, GetModuleHandleA (0), 0)
键盘函数回调 = 键盘回调子程序
.子程序 键盘钩子, 整数型
.参数 参数一, 整数型
.参数 参数二, 整数型
.参数 参数三, 整数型
键代码 = 取字节集数据 (指针到字节集 (参数三, 1), 3, )
按键状态 = 参数二
返回键盘键值 (键盘函数回调)
返回 (CallNextHookEx (键盘hook, 参数一, 参数二, 参数三))
.子程序 返回键盘键值
.参数 参数, 子程序指针
.局部变量 延时值, 整数型
.如果真 (临时键状态 ≠ 按键状态)
临时键状态 = 按键状态
.如果 (键盘首次延时 = 真)
延时值 = 0
键盘起始时间 = 取启动时间 ()
键盘首次延时 = 假
.否则
延时值 = 取启动时间 () - 键盘起始时间
键盘起始时间 = 取启动时间 ()
键盘首次延时 = 假
.如果结束
.如果真结束
CallWindowProcA (到数值 (参数), 按键状态, 键代码, 延时值, 0)
.子程序 卸载键盘监视, , 公开
UnhookWindowsHookEx (键盘hook)
主程序静态DLL
.版本 2 .DLL命令 键盘监视, , "keyDll.dll", "键盘监视" .参数 参数一, 子程序指针 .DLL命令 卸载键盘监视, , "keyDll.dll", "卸载键盘监视"
开始调用
.版本 2 键盘监视 (&键盘回调)
定义键盘回调函数
.版本 2 .支持库 spec .子程序 键盘回调 .参数 a, , , 按键状态 .参数 b, , , 键代码 .参数 c, , , 延时 .如果 (a = 256) 调试输出 (“a” + 到文本 (a)) 调试输出 (“b” + 到文本 (b)) 调试输出 (“c” + 到文本 (c)) 编辑框1.加入文本 (字符 (b)) .否则 .如果结束
卸载回调调用
卸载键盘监视 ()
资源教程交流①群:521068947