使用易语言怎么设置鼠标全局钩子

不使用模块,不使用支持库,用API怎么设置鼠标全局钩子。

.版本 2

.DLL命令 api_设置系统钩子, 整数型, "user32.dll", "SetWindowsHookExA", , , SetWindowsHookEx
.参数 钩子类型, 整数型, , idHook
.参数 回调函数地址, 整数型, , lpfn
.参数 实例句柄, 整数型, , hmod
.参数 线程ID, 整数型, , dwThreadId

.DLL命令 api_呼叫下一钩子, 整数型, "user32.dll", "CallNextHookEx", , , CallNextHookEx
.参数 钩子句柄, 整数型, , hHook
.参数 回调函数参数1, 整数型, , ncode
.参数 回调函数参数2, 整数型, , wParam
.参数 回调函数参数3, 整数型, , lParam

.DLL命令 api_释放系统钩子, 整数型, "user32.dll", "UnhookWindowsHookEx", , , UnhookWindowsHookEx
.参数 钩子句柄, 整数型, , hHook

.DLL命令 api_取实例句柄, 整数型, , "GetModuleHandleA", , ,
.参数 程序名, 整数型

.DLL命令 api_拷贝内存, 整数型, "kernel32", "RtlMoveMemory", , , RtlMoveMemory
.参数 回调结构, 鼠标结构, , lpvDest
.参数 钩子回调函数参数3, 整数型, , lpvSource
.参数 尺寸, 整数型, , cbCopy

.版本 2

.数据类型 鼠标结构, 公开
.成员 成员1, 整数型
.成员 成员2, 坐标结构
.成员 成员3, 整数型

.数据类型 坐标结构
.成员 x, 整数型
.成员 y, 整数型

.版本 2
.支持库 spec

.程序集 窗口程序集1
.程序集变量 钩子句柄, 整数型

.子程序 _按钮1_被单击

钩子句柄 = api_设置系统钩子 (14, 取子程序地址 (&鼠标钩子回调函数), api_取实例句柄 (0), 0)

.子程序 鼠标钩子回调函数, 整数型
.参数 参数1
.参数 参数2
.参数 参数3
.局部变量 鼠标信息, 鼠标结构
.局部变量 坐标z, 坐标结构

.判断开始 (参数2 = 513)
_启动窗口.标题 = “你按下了鼠标左键”
.默认

.判断结束
.判断开始 (参数2 = 514)
_启动窗口.标题 = “你放开了鼠标左键”
.默认

.判断结束
.判断开始 (参数2 = 516)
_启动窗口.标题 = “你按下了鼠标右键”
.默认

.判断结束
.判断开始 (参数2 = 517)
_启动窗口.标题 = “你放开了鼠标右键”
.默认

.判断结束

.如果真 (参数2 = 512)
api_拷贝内存 (鼠标信息, 参数3, 10)
坐标z = 鼠标信息.成员2

输出调试文本 (“x=” + 到文本 (坐标z.x))
输出调试文本 (“y=” + 到文本 (坐标z.x))
.如果真结束

返回 (api_呼叫下一钩子 (钩子句柄, 参数1, 参数2, 参数3))

.子程序 _按钮2_被单击

api_释放系统钩子 (钩子句柄)
温馨提示:答案为网友推荐,仅供参考