局部热键模块API应用例程

易语言 2020-09-01 17:29:18

局部热键模块API应用例程

.如果真 (代码值 < 0)
返回 (CallNextHookEx_ (局部热键_钩子句柄, 代码值, 参数1, 参数2))
.如果真结束
RtlMoveMemory_ (局部_消息, 参数2, 28)
.如果真 (局部_消息.message = 256) ' #WM_KEYDOWN
.计次循环首 (取数组成员数 (局部热键_数组), n)
.如果真 (局部热键_数组 [n].热键码 = 局部_消息.wParam)
.如果真 (局部热键_数组 [n].功能键 ≠ 0) ' 判断功能键
.如果真 (GetAsyncKeyState_ (局部热键_数组 [n].功能键) = 0) ' 没有按注册的功能键,返回
返回 (CallNextHookEx_ (局部热键_钩子句柄, 代码值, 参数1, 参数2))
.如果真结束

.如果真结束
调用子程序 (局部热键_数组 [n].回调子程序, , , )
返回 (CallNextHookEx_ (局部热键_钩子句柄, 代码值, 参数1, 参数2))
.如果真结束

.计次循环尾 ()
.如果真结束
返回 (CallNextHookEx_ (局部热键_钩子句柄, 代码值, 参数1, 参数2))

.计次循环首 (取数组成员数 (局部热键_数组), n) ' 判断是否存在热键
.如果 (是否为空 (功能键码) = 假)
.如果真 (局部热键_数组 [n].功能键 = 功能键码 且 局部热键_数组 [n].热键码 = 键代码)
删除成员 (局部热键_数组, n, )
返回 (真)
.如果真结束

.否则
.如果真 (局部热键_数组 [n].热键码 = 键代码 且 局部热键_数组 [n].功能键 = 0)
删除成员 (局部热键_数组, n, )
返回 (真)