易语言通过全局鼠标钩子DLL监视鼠标按键

全局鼠标钩子DLL源码:

.版本 2

.子程序 鼠标监视, , 公开
.参数 处理子程序, 子程序指针

mousefirst = 真
Mhook = SetWindowsHookExA (14, &鼠标钩子, GetModuleHandleA (0), 0)
MouseF = 处理子程序

.子程序 鼠标钩子, 整数型
.参数 参数一, 整数型
.参数 参数二, 整数型, , 鼠标按键的状态
.参数 参数三, 整数型
.局部变量 响应, 逻辑型, , , 鼠标响应时间逻辑

.判断开始 (参数二 = 513) ' 鼠标左键按下’
响应 = 真
Mevent = 2
.判断 (参数二 = 514) ' 鼠标左键放开’
响应 = 真
Mevent = 4
.判断 (参数二 = 516) ' 鼠标右键按下’
响应 = 真
Mevent = 8
.判断 (参数二 = 517) ' 鼠标左键按下’
响应 = 真
Mevent = 16
.默认

.判断结束
.如果真 (响应 = 假)
Mevent = 0
.如果真结束
响应 = 假
x = 取鼠标水平位置 ()
y = 取鼠标垂直位置 ()
.如果 (mousefirst = 真)
timelapse = 0
starttime = 取启动时间 ()
mousefirst = 假
.否则
timelapse = 取启动时间 () - starttime
starttime = 取启动时间 ()
mousefirst = 假
.如果结束

返回鼠标键 (MouseF)

返回 (CallNextHookEx (Mhook, 参数一, 参数二, 参数三))

.子程序 返回鼠标键
.参数 参数, 子程序指针

CallWindowProcA (到数值 (参数), Mevent, x, y, timelapse)

.子程序 卸载鼠标监视, , 公开

UnhookWindowsHookEx (Mhook)

主程序静态DLL

.版本 2

.DLL命令 鼠标监视, , "MouseDll.dll", "鼠标监视"
.参数 参数, 子程序指针

.DLL命令 卸载鼠标监视, , "MouseDll.dll", "卸载鼠标监视"

.DLL命令 ScreenToClient, 逻辑型, "user32", "ScreenToClient"
.参数 hWnd, 整数型, , 0
.参数 lpPoint, POINT, , 0

主程序静态调用

鼠标监视 (&鼠标回调)

鼠标回调函数:

.版本 2
.支持库 eAPI

.子程序 鼠标回调
.参数 a, , , 自定义的鼠标状态值
.参数 b, , , X
.参数 c, , , Y
.局部变量 M, POINT
.局部变量 x
.局部变量 y

标签1.标题 = “X: ” + 到文本 (b) + “ Y: ” + 到文本 (c)
M.X = b
M.Y = c
.如果真 (取鼠标所在窗口句柄 () = _启动窗口.取窗口句柄 ())
ScreenToClient (_启动窗口.取窗口句柄 (), M)
x = M.X
y = M.Y
标签2.标题 = “X: ” + 到文本 (x) + “ Y: ” + 到文本 (y)

.如果真结束

.判断开始 (a = 2)
标签3.标题 = “你按下鼠标左键”
.判断 (a = 4)
标签3.标题 = “你松开鼠标左键”
.判断 (a = 8)
标签3.标题 = “你按下鼠标右键”
.判断 (a = 16)
标签3.标题 = “你松开了鼠标右键”
.默认

xxx

卸载鼠标监视 ()

教程获取下载:


发布日期:

所属分类: 易语言 标签: