本帖最后由 1185384801 于 2018-1-22 14:21 编辑
大家一定知道注册热键可以注册组合键吧?可是,有些易友认为多用了个扩展支持库,强迫症犯了(比如我)
于是我用一些很简单但是实用的方法实现了这个功能!
原理解析:
不错,就是这一个简单的API
计次循环首 (取数组成员数 (被监视的热键 ), i )如果真 (键代码 = 被监视的热键 [i ].键代码 且 功能键状态 = 0 且 被监视的热键 [i ].功能键状态 ≠ 0 )被监视的热键 [i ].热键执行 = 假 如果真 (被监视的热键 [i ].热键执行 且 键代码 = 被监视的热键 [i ].键代码 且 功能键状态 = 被监视的热键 [i ].功能键状态 )被监视的热键 [i ].热键执行 = 假 调用事件 (到整数 (被监视的热键 [i ].响应事件 ), 被监视的热键 [i ].热键标识 ) 返回 ()计次循环尾 ()|
监视热键 | | |
响应事件 | 子程序指针 | | | 键代码 | 整数型 | | | 功能键状态 | 整数型 | | | 热键标识 | 整数型 | | | 热键执行 | 逻辑型 | | |
处理热键的过程
就是一个主要枚举
最后加上一个疯狂的时钟:
|
时钟_创建 | 逻辑型 | | |
窗口句柄 | 整数型 | | | | 时钟标识文本 | 文本型 | | | | 时钟周期 | 整数型 | | | | 时钟_周期事件 | 子程序指针 | | | | 如果真 (IsWindow (窗口句柄 ) = 1 )返回 (SetTimer (窗口句柄, 时钟标识文本, 时钟周期, 时钟_周期事件 )) 返回 (假)|
时钟_销毁 | 逻辑型 | | |
窗口句柄 | 整数型 | | | | 时钟标识文本 | 文本型 | | | | 如果真 (IsWindow (窗口句柄 ) = 1 )返回 (KillTimer (窗口句柄, 时钟标识文本 )) 返回 (假)|
热键_开始执行 | 逻辑型 | | |
窗口句柄 | 整数型 | | | | 时钟标识 | 文本型 | | | | 返回 (时钟_创建 (窗口句柄, 时钟标识, 1, &热键监控时钟_周期事件 )) 变量名 | 类 型 | 静态 | 数组 | 备 注 | 键代码 | | | | 功能键状态 | | | | 键状态 | | | | 计次循环首 (135, 键代码 )键状态 = 测试虚拟键_ (键代码 )功能键状态 = 取功能键状态 (键代码 )如果 (键状态 ≠ 0 )处理热键 (键代码, 功能键状态 )初始热键 ()计次循环尾 ()
是不是就哦很完美了?
看看效果吧:
帧数的问题看起来就有点问题了
最后!!源码回复下载!!!!!
如果你觉得可以的话欢迎好评打赏!!
纯代码多级热键.zip
(9.4 KB, 下载次数: 353)
|