易语言通过全局键盘钩子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))
.否则
 
.如果结束

卸载回调调用

卸载键盘监视 ()

511遇见易语言DLL制作调用及hook注入

资源教程交流①群:521068947


发布日期:

所属分类: 易语言 标签: