在超级模块提取的监视热键模块

易语言 2020-03-17 14:57:56

在超级模块提取的监视热键模块

.子程序 监视热键3, 整数型, 公开, 监视一个热键,当热键被触发时激活响应事件.(成功返回热键标识,失败返回0)
.参数 响应事件, 子程序指针, , 响应事件(热键标识,其它...),事件参数数目不限!如果再次监视热键将响应事件!
.参数 键代码, 整数型, , 触发事件的基本键,事件在普通键被按下时触发,1鼠标左键,2鼠标右键,更多查询相关帮助
.参数 功能键状态, 整数型, 可空, 1 Alt 2 Ctrl 4 Shift 若要两个或以上的状态键,则把它们的值相加.
.参数 其它键, 整数型, 可空, 如果你需要注册由两个普通键组合的热键,可设置一个其它键代码.
.参数 周期, 整数型, 可空, 默认为10,监视热键的周期时间(建议5-200之间)
.参数 直接触发, 逻辑型, 可空, 默认为假:创建新的线程事件 真:直接调用事件等待返回
.局部变量 临时热键信息, 热键信息2
.局部变量 i, 整数型

.如果真 (到字节 (取绝对值 (键代码)) ≤ 0)
返回 (0)
.如果真结束
.计次循环首 (取数组成员数 (监视热键3_信息), i)
.如果真 (监视热键3_信息 [i].普通键 = 键代码 且 监视热键3_信息 [i].功能键 = 功能键状态 且 监视热键3_信息 [i].其它键 = 其它键)
监视热键3_信息 [i].事件子程序 = 响应事件
监视热键3_信息 [i].直接触发 = 直接触发
.如果真 (监视热键3_信息 [i].标识 ≠ 0)
返回 (监视热键3_信息 [i].标识) ' 已经注册过的热键,返回热键标识
.如果真结束
监视热键3_信息 [i].标识 = i + 3000000
返回 (监视热键3_信息 [i].标识)
.如果真结束

.计次循环尾 ()
临时热键信息.事件子程序 = 响应事件
临时热键信息.普通键 = 到字节 (键代码)
临时热键信息.功能键 = 功能键状态
临时热键信息.其它键 = 到字节 (其它键)
临时热键信息.直接触发 = 直接触发
临时热键信息.标识 = 取数组成员数 (监视热键3_信息) + 3000001
加入成员 (监视热键3_信息, 临时热键信息)
.如果真 (临时热键信息.标识 = 3000001)
_创建定时器 (0, 6663, 选择 (周期 ≤ 0, 10, 周期), &监视热键线程3)
.如果真结束
返回 (临时热键信息.标识)