易语言监视热键,监视热键 (&_按钮1_被单击, #F1键, , )一按F1就结束
2个回答
展开全部
是要监视热键的源码吗?
.版本 2
.支持库 spec
.程序集 窗口程序集1
.程序集变量 监视热键数组, 监视热键信息, , "0"
.程序集变量 开启监视, 逻辑型
.程序集变量 时钟ID, 整数型
.程序集变量 监视句柄, 整数型
.子程序 监视_热键, 整数型, 公开, 返回热键ID,如出现问题请“撤销监视热键”在重新“监视热键”即可
.参数 窗口句柄, 整数型, 可空
.参数 主热键, 整数型
.参数 功能键, 整数型, 可空, 1 Alt 2 Ctrl 4 Shitf 8 Win 若要两个或以上的状态键按则把它们的值相加..
.参数 回调函数, 子程序指针, , 响应热键事件的子程序指针
.参数 监视周期, 整数型, 可空, 默认为 10 毫秒
.局部变量 临时信息, 监视热键信息
.如果真 (开启监视 = 假)
置随机数种子 ()
时钟ID = 取随机数 (1, 9999)
.如果 (监视周期 = 0)
创建时钟 (窗口句柄, 时钟ID, 10, &监视函数)
.否则
创建时钟 (窗口句柄, 时钟ID, 监视周期, &监视函数)
.如果结束
开启监视 = 真
.如果真结束
监视句柄 = 窗口句柄
.如果真 (功能键 = 1)
功能键 = 18
.如果真结束
.如果真 (功能键 = 2)
功能键 = 17
.如果真结束
.如果真 (功能键 = 4)
功能键 = 16
.如果真结束
临时信息.热键ID = 主热键 + 功能键
临时信息.子程序指针 = 回调函数
加入成员 (监视热键数组, 临时信息)
返回 (主热键 + 功能键)
.子程序 监视函数
.局部变量 按键数组, 整数型, 静态, "256"
.局部变量 记录按键, 整数型, 静态
.局部变量 当前状态, 整数型
.局部变量 键值, 整数型
.局部变量 计次, 整数型
.变量循环首 (1, 256, 1, 键值)
当前状态 = 取按键状态 (键值)
.如果真 (键值 ≠ 160 且 键值 ≠ 162 且 键值 ≠ 164)
.如果真 (按键数组 [键值] ≠ 0 且 当前状态 = 0)
记录按键 = 记录按键 - 键值
.如果真 (记录按键 < 0)
记录按键 = 0
.如果真结束
.如果真结束
.如果真 (按键数组 [键值] = 0 且 当前状态 ≠ 0)
记录按键 = 记录按键 + 键值
.计次循环首 (取数组成员数 (监视热键数组), 计次)
.如果真 (监视热键数组 [计次].热键ID = 记录按键)
调用子程序 (监视热键数组 [计次].子程序指针, , , )
跳出循环 ()
.如果真结束
.计次循环尾 ()
.如果真结束
.如果真结束
按键数组 [键值] = 当前状态
.变量循环尾 ()
.子程序 撤销全局监视, , 公开
销毁时钟 (监视句柄, 时钟ID)
.子程序 撤销指定监视, , 公开
.参数 热键ID, 整数型
.局部变量 i, 整数型
.计次循环首 (取数组成员数 (监视热键数组), i)
删除成员 (监视热键数组, i, 1)
.计次循环尾 ()
.版本 2
.数据类型 监视热键信息
.成员 热键ID, 整数型
.成员 子程序指针, 子程序指针
.版本 2
.DLL命令 创建时钟, 整数型, , "SetTimer", , 返回成功创建定时器的标志
.参数 窗口句柄, 整数型, , 为空则为系统级定时器
.参数 时钟ID, 整数型, , 除 0 之外任何整数型数值都可以
.参数 时钟周期, 整数型, , 毫秒级周期
.参数 子程序指针, 子程序指针, , 定时器触发事件
.DLL命令 销毁时钟, 整数型, , "KillTimer"
.参数 窗口句柄, 整数型
.参数 时钟ID, 整数型
.DLL命令 取按键状态, 短整数型, "user32.dll", "GetAsyncKeyState"
.参数 鼠标键, 整数型
.版本 2
.支持库 spec
.程序集 窗口程序集1
.程序集变量 监视热键数组, 监视热键信息, , "0"
.程序集变量 开启监视, 逻辑型
.程序集变量 时钟ID, 整数型
.程序集变量 监视句柄, 整数型
.子程序 监视_热键, 整数型, 公开, 返回热键ID,如出现问题请“撤销监视热键”在重新“监视热键”即可
.参数 窗口句柄, 整数型, 可空
.参数 主热键, 整数型
.参数 功能键, 整数型, 可空, 1 Alt 2 Ctrl 4 Shitf 8 Win 若要两个或以上的状态键按则把它们的值相加..
.参数 回调函数, 子程序指针, , 响应热键事件的子程序指针
.参数 监视周期, 整数型, 可空, 默认为 10 毫秒
.局部变量 临时信息, 监视热键信息
.如果真 (开启监视 = 假)
置随机数种子 ()
时钟ID = 取随机数 (1, 9999)
.如果 (监视周期 = 0)
创建时钟 (窗口句柄, 时钟ID, 10, &监视函数)
.否则
创建时钟 (窗口句柄, 时钟ID, 监视周期, &监视函数)
.如果结束
开启监视 = 真
.如果真结束
监视句柄 = 窗口句柄
.如果真 (功能键 = 1)
功能键 = 18
.如果真结束
.如果真 (功能键 = 2)
功能键 = 17
.如果真结束
.如果真 (功能键 = 4)
功能键 = 16
.如果真结束
临时信息.热键ID = 主热键 + 功能键
临时信息.子程序指针 = 回调函数
加入成员 (监视热键数组, 临时信息)
返回 (主热键 + 功能键)
.子程序 监视函数
.局部变量 按键数组, 整数型, 静态, "256"
.局部变量 记录按键, 整数型, 静态
.局部变量 当前状态, 整数型
.局部变量 键值, 整数型
.局部变量 计次, 整数型
.变量循环首 (1, 256, 1, 键值)
当前状态 = 取按键状态 (键值)
.如果真 (键值 ≠ 160 且 键值 ≠ 162 且 键值 ≠ 164)
.如果真 (按键数组 [键值] ≠ 0 且 当前状态 = 0)
记录按键 = 记录按键 - 键值
.如果真 (记录按键 < 0)
记录按键 = 0
.如果真结束
.如果真结束
.如果真 (按键数组 [键值] = 0 且 当前状态 ≠ 0)
记录按键 = 记录按键 + 键值
.计次循环首 (取数组成员数 (监视热键数组), 计次)
.如果真 (监视热键数组 [计次].热键ID = 记录按键)
调用子程序 (监视热键数组 [计次].子程序指针, , , )
跳出循环 ()
.如果真结束
.计次循环尾 ()
.如果真结束
.如果真结束
按键数组 [键值] = 当前状态
.变量循环尾 ()
.子程序 撤销全局监视, , 公开
销毁时钟 (监视句柄, 时钟ID)
.子程序 撤销指定监视, , 公开
.参数 热键ID, 整数型
.局部变量 i, 整数型
.计次循环首 (取数组成员数 (监视热键数组), i)
删除成员 (监视热键数组, i, 1)
.计次循环尾 ()
.版本 2
.数据类型 监视热键信息
.成员 热键ID, 整数型
.成员 子程序指针, 子程序指针
.版本 2
.DLL命令 创建时钟, 整数型, , "SetTimer", , 返回成功创建定时器的标志
.参数 窗口句柄, 整数型, , 为空则为系统级定时器
.参数 时钟ID, 整数型, , 除 0 之外任何整数型数值都可以
.参数 时钟周期, 整数型, , 毫秒级周期
.参数 子程序指针, 子程序指针, , 定时器触发事件
.DLL命令 销毁时钟, 整数型, , "KillTimer"
.参数 窗口句柄, 整数型
.参数 时钟ID, 整数型
.DLL命令 取按键状态, 短整数型, "user32.dll", "GetAsyncKeyState"
.参数 鼠标键, 整数型
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询