易语言实现SetWindowsHookEx全局鼠标钩子监视

API源码:

.版本 2
 
.DLL命令 SetWindowsHookExA, 整数型, , "SetWindowsHookExA", , 安装钩子,函数成功则返回钩子子程的句柄,失败返回NULL
    .参数 ihook, 整数型, , 钩子类型
    .参数 lpfunc, 整数型, , 回调函数
    .参数 hin, 整数型, , 实例句柄
    .参数 threadid, 整数型, , 线程ID
 
.DLL命令 CallNextHookEx, 整数型, "user32.dll", "CallNextHookEx", , 调用钩子链中的下一个挂钩过程,调用成功返回值是下一个钩子的回调函数,否则为0。当前钩子程序也必须返回此值。
    .参数 hhook, 整数型, , 当前钩子的句柄
    .参数 nCode, 整数型, , 钩子回调函数中的参数
    .参数 wParam, 整数型, , 钩子回调函数中的参数
    .参数 lParam, 整数型, , 钩子回调函数中的参数
 
.DLL命令 UnhookWindowsHookEx, 逻辑型, "user32.dll", "UnhookWindowsHookEx", , 卸载钩子过程,函数成功则返回非0,失败返回NULL
    .参数 hhk, 整数型, , 安装钩子过程进得到的钩子句柄

安装鼠标钩子源码:

鼠标钩子句柄 = SetWindowsHookExA (14, 到整数 (&鼠标钩子回调), 0, 0)

鼠标钩子回调函数源码:

.版本 2
.支持库 spec
 
.子程序 鼠标钩子回调, 整数型, , 不同的钩子,回调函数是不一样的
.参数 代码值, 整数型
.参数 参数一, 整数型
.参数 参数二, 整数型
 
' 512 鼠标移动
' 513 左键按下
' 514 左键弹起
' 516 右键按下
' 517 右键弹起
' 519 中键按下
' 520 中键弹起
' 522 中键滚动
.判断开始 (参数一 = 512)
    调试输出 (“鼠标在移动”)
.判断 (参数一 = 513)
    调试输出 (“左键按下”)
.判断 (参数一 = 514)
    调试输出 (“左键弹起”)
.判断 (参数一 = 516)
    调试输出 (“右键按下”)
.判断 (参数一 = 517)
    调试输出 (“右键弹起”)
.判断 (参数一 = 519)
    调试输出 (“中键按下”)
.判断 (参数一 = 520)
    调试输出 (“中键弹起”)
.判断 (参数一 = 522)
    调试输出 (“中键滚动”)
.默认
 
.判断结束
 
' 返回(1)就是屏蔽了全局的鼠标,非0就行
' 返回 (3)
返回 (CallNextHookEx (鼠标钩子句柄, 代码值, 参数一, 参数二))

卸载鼠标钩子:

UnhookWindowsHookEx (鼠标钩子句柄)

教程获取下载:


发布日期:

所属分类: 易语言 标签: