易语言:请问如何注册热键框,不是简单的注册热键

本文介绍如何在易语言中实现复杂的热键框功能,包括处理组合键(Ctrl、Shift、Alt)及F1-F12等特殊键。通过_编辑框7_按下某键和_编辑框7_放开某键事件,结合选择热键和确认热键子程序,实现热键的动态显示和注册。
如何注册热键框??、不是简单的注册热键


.版本 2
.支持库 shellEx
.支持库 spec
.子程序 _标签1_反馈事件, 整数型
.参数 参数一, 整数型
.参数 参数二, 整数型
.判断开始 (h [1] = 参数一)
    执行子程序 (z [1], )
.判断 (h [2] = 参数一)
    执行子程序 (z [2], )
.判断 (h [3] = 参数一)
    执行子程序 (z [3], )
.默认
.判断结束

.子程序 _编辑框7_按下某键, 逻辑型
.参数 键代码, 整数型
.参数 功能键状态, 整数型
编辑框7.内容 = 选择热键 (键代码, 功能键状态)
.子程序 _编辑框7_放开某键, 逻辑型
.参数 键代码, 整数型
.参数 功能键状态, 整数型
编辑框7.内容 = 确认热键 ()
.子程序 选择热键, 文本型, 公开, 1、请在“按下某键”事件中调用该子程序为“编辑框.内容”赋值。2、该子程序必须与“确认热键”子程序配合使用。3、使用前请将想要变成热键框的编辑框的“输入方式”设为“只读方式”。4、请将“按下某键”事件的参数赋值到静态变量或非局部变量,提供给“注册热键”命令作参数。
.参数 键代码, 整数型, , 直接调用“按下某键”事件的第1个参数
.参数 功能键状态, 整数型, , 直接调用“按下某键”事件的第2个参数
.局部变量 热键, 文本型
.判断开始 (功能键状态 = 1 + 2 + 4)
    热键文本 = “Ctrl+Shift+Alt+ ”
.判断 (功能键状态 = 1 + 2)
    热键文本 = “Ctrl+Shift+ ”
.判断 (功能键状态 = 1 + 4)
    热键文本 = “Ctrl+Alt+ ”
.判断 (功能键状态 = 2 + 4)
    热键文本 = “Shift+Alt+ ”
.判断 (功能键状态 = 1)
    热键文本 = “Ctrl+ ”
.判断 (功能键状态 = 2)
    热键文本 = “Shift+ ”
.判断 (功能键状态 = 4)
    热键文本 = “Alt+ ”
.默认
    ' 本源码来自易语言资源网( www.5A5X.com )
.判断结束
.判断开始 (键代码 = #Ctrl键 且 功能键状态 = 0)
    热键文本 = “Ctrl+ ”
.判断 (键代码 = #Ctrl键 且 功能键状态 = 2)
    热键文本 = “Ctrl+Shift+ ”
.判断 (键代码 = #Ctrl键 且 功能键状态 = 4)
    热键文本 = “Ctrl+Alt+ ”
.判断 (键代码 = #Ctrl键 且 功能键状态 = 2 + 4)
    热键文本 = “Ctrl+Shift+Alt+ ”
.判断 (键代码 = #Shift键 且 功能键状态 = 0)
    热键文本 = “Shift+ ”
.判断 (键代码 = #Shift键 且 功能键状态 = 4)
    热键文本 = “Shift+Alt+ ”
.判断 (键代码 = #Alt键 且 功能键状态 = 0)
    热键文本 = “Alt+ ”
.默认
    ' 本源码来自易语言资源网( www.5A5X.com )
.判断结束
.判断开始断 (功能键状态 = 1 + 2 + 4)
    ' 热键文本 = “Ctrl + Shift + Alt + ”
.' 判断 (功能键状态 = 1 + 2)
    ' 热键文本 = “Ctrl + Shift + ”
.' 判断 (功能键状态 = 1 + 4)
    ' 热键文本 = “Ctrl + Alt + ”
.' 判断 (功能键状态 = 2 + 4)
    ' 热键文本 = “Shift + Alt + ”
.' 判断 (功能键状态 = 1)
    ' 热键文本 = “Ctrl + ”
.' 判断 (功能键状态 = 2)
    ' 热键文本 = “Shift + ”
.' 判断 (功能键状态 = 4)
    ' 热键文本 = “Alt + ”
.默认
.判断结束
.判断开始断 (键代码 = #Ctrl键 且 功能键状态 = 0)
    ' 热键文本 = “Ctrl + ”
.' 判断 (键代码 = #Ctrl键 且 功能键状态 = 2)
    ' 热键文本 = “Ctrl + Shift + ”
.' 判断 (键代码 = #Ctrl键 且 功能键状态 = 4)
    ' 热键文本 = “Ctrl + Alt + ”
.' 判断 (键代码 = #Ctrl键 且 功能键状态 = 2 + 4)
    ' 热键文本 = “Ctrl + Shift + Alt + ”
.' 判断 (键代码 = #Shift键 且 功能键状态 = 0)
    ' 热键文本 = “Shift + ”
.' 判断 (键代码 = #Shift键 且 功能键状态 = 4)
    ' 热键文本 = “Shift + Alt + ”
.' 判断 (键代码 = #Alt键 且 功能键状态 = 0)
    ' 热键文本 = “Alt + ”
.默认
.判断结束

.判断开始 (键代码 = #F1键)
    热键 = “F1”
.判断 (键代码 = #F2键)
    热键 = “F2”
.判断 (键代码 = #F3键)
    热键 = “F3”
.判断 (键代码 = #F4键)
    热键 = “F4”
.判断 (键代码 = #F5键)
    热键 = “F5”
.判断 (键代码 = #F6键)
    热键 = “F6”
.判断 (键代码 = #F7键)
    热键 = “F7”
.判断 (键代码 = #F8键)
    热键 = “F8”
.判断 (键代码 = #F9键)
    热键 = “F9”
.判断 (键代码 = #F10键)
    热键 = “F10”
.判断 (键代码 = #F11键)
    热键 = “F11”
.判断 (键代码 = #F12键)
    热键 = “F12”
.判断 (键代码 = 32)
    热键 = “空格”
.判断 (键代码 = 37)
    热键 = “←”
.判断 (键代码 = 38)
    热键 = “↑”
.判断 (键代码 = 39)
    热键 = “→”
.判断 (键代码 = 40)
    热键 = “↓”
.判断 (键代码 ≥ 48 且 键代码 ≤ 57)
    热键 = 字符 (键代码)
.判断 (键代码 ≥ 65 且 键代码 ≤ 90)
    热键 = 字符 (键代码)
.判断 (键代码 = 106)
    热键 = “*”
.判断 (键代码 = 107)
    热键 = “+”
.判断 (键代码 = 186)
    热键 = “;”
.判断 (键代码 = 187)
    热键 = “=”
.判断 (键代码 = 188)
    热键 = “,”
.判断 (键代码 = 189)
    热键 = “-”
.判断 (键代码 = 190)
    热键 = “.”
.判断 (键代码 = 191)
    热键 = “/”
.判断 (键代码 = 192)
    热键 = “`”
.判断 (键代码 = 219)
    热键 = “[”
.判断 (键代码 = 220)
    热键 = “\”
.判断 (键代码 = 221)
    热键 = “]”
.判断 (键代码 = 222)
    热键 = “'”
.判断 (键代码 = 33)
    热键 = “PageUp”
.判断 (键代码 = 34)
    热键 = “PageDown”
.判断 (键代码 = 35)
    热键 = “End”
.判断 (键代码 = 36)
    热键 = “Home”
.判断 (键代码 = 45)
    热键 = “Insert”
.判断 (键代码 = 46)
    热键 = “Delete”
.默认
.判断结束
.判断开始 (取文本右边 (热键文本, 1) = “ ”)
    调试输出 (热键文本, 热键)
    热键文本 = 热键文本 + 热键
.默认
    热键文本 = 热键
.判断结束
返回 (热键文本)
.子程序 确认热键, 文本型, 公开, 1、请在“放开某键”事件中调用该子程序为“编辑框.内容”赋值。2、该子程序必须与“选择热键”子程序配合使用。
.判断开始 (取文本右边 (热键文本, 1) = “ ”)
    热键文本 = “”
    返回 (“无”)
.默认
    返回 (热键文本)
.判断结束

.子程序 取按键状态, 按键状态, 公开
.参数 参数_代码文本, 文本型
.局部变量 J_键文本, 文本型, , "0"
.局部变量 J_键状态, 按键状态
C_功能键 = 0
C_键代码 = 0
.如果真 (参数_代码文本 = “无” 或 参数_代码文本 = “ ”)
    返回 (J_键状态)
.如果真结束
J_键文本 = 分割文本 (参数_代码文本, “ ”, )
.如果 (取数组成员数 (J_键文本) > 1)  ' 大于1表示有功能键。
    .判断开始 (J_键文本 [1] = “Ctrl+Shift+Alt+”)  ' 7
        C_功能键 = 7
    .判断 (J_键文本 [1] = “Ctrl+Shift+”)  ' 3
        C_功能键 = 3
    .判断 (J_键文本 [1] = “Ctrl+Alt+”)  ' 5
        C_功能键 = 5
    .判断 (J_键文本 [1] = “Shift+Alt+”)  ' 6
        C_功能键 = 6
    .判断 (J_键文本 [1] = “Ctrl+”)  ' 1
        C_功能键 = 1
    .判断 (J_键文本 [1] = “Shift+”)  ' 2
        C_功能键 = 2
    .判断 (J_键文本 [1] = “Alt+”)  ' 4
        C_功能键 = 4
    .默认
        ' 本源码来自易语言资源网( www.5A5X.com )
    .判断结束
    C_键代码 = _取代码 (J_键文本 [2])
.否则
    C_键代码 = _取代码 (参数_代码文本)
.如果结束

J_键状态._功能键状态 = C_功能键
J_键状态._键代码 = C_键代码
返回 (J_键状态)
.子程序 _取代码, 整数型
.参数 参数_代码文本, 文本型
.局部变量 J_代码, 整数型

.判断开始 (参数_代码文本 = “F1”)
    J_代码 = 112
.判断 (参数_代码文本 = “F2”)
    J_代码 = 113
.判断 (参数_代码文本 = “F3”)
    J_代码 = 114
.判断 (参数_代码文本 = “F4”)
    J_代码 = 115
.判断 (参数_代码文本 = “F5”)
    J_代码 = 116
.判断 (参数_代码文本 = “F6”)
    J_代码 = 117
.判断 (参数_代码文本 = “F7”)
    J_代码 = 118
.判断 (参数_代码文本 = “F8”)
    J_代码 = 119
.判断 (参数_代码文本 = “F9”)
    J_代码 = 120
.判断 (参数_代码文本 = “F10”)
    J_代码 = 121
.判断 (参数_代码文本 = “F11”)
    J_代码 = 122
.判断 (参数_代码文本 = “F12”)
    J_代码 = 123
.判断 (参数_代码文本 = “F13”)
    J_代码 = 124
.判断 (参数_代码文本 = “F14”)
    J_代码 = 125
.判断 (参数_代码文本 = “F15”)
    J_代码 = 126
.判断 (参数_代码文本 = “F16”)
    J_代码 = 127
.判断 (参数_代码文本 = “0”)
    J_代码 = 48
.判断 (参数_代码文本 = “1”)
    J_代码 = 49
.判断 (参数_代码文本 = “2”)
    J_代码 = 50
.判断 (参数_代码文本 = “3”)
    J_代码 = 51
.判断 (参数_代码文本 = “4”)
    J_代码 = 52
.判断 (参数_代码文本 = “5”)
    J_代码 = 53
.判断 (参数_代码文本 = “6”)
    J_代码 = 54
.判断 (参数_代码文本 = “7”)
    J_代码 = 55
.判断 (参数_代码文本 = “8”)
    J_代码 = 56
.判断 (参数_代码文本 = “9”)
    J_代码 = 57
.判断 (参数_代码文本 = “A”)
    J_代码 = 65
.判断 (参数_代码文本 = “B”)
    J_代码 = 66
.判断 (参数_代码文本 = “C”)
    J_代码 = 67
.判断 (参数_代码文本 = “D”)
    J_代码 = 68
.判断 (参数_代码文本 = “E”)
    J_代码 = 69
.判断 (参数_代码文本 = “F”)
    J_代码 = 70
.判断 (参数_代码文本 = “G”)
    J_代码 = 71
.判断 (参数_代码文本 = “H”)
    J_代码 = 72
.判断 (参数_代码文本 = “I”)
    J_代码 = 73
.判断 (参数_代码文本 = “J”)
    J_代码 = 74
.判断 (参数_代码文本 = “K”)
    J_代码 = 75
.判断 (参数_代码文本 = “L”)
    J_代码 = 76
.判断 (参数_代码文本 = “M”)
    J_代码 = 77
.判断 (参数_代码文本 = “N”)
    J_代码 = 78
.判断 (参数_代码文本 = “O”)
    J_代码 = 79
.判断 (参数_代码文本 = “P”)
    J_代码 = 80
.判断 (参数_代码文本 = “Q”)
    J_代码 = 81
    ' 本源码来自易语言资源网( www.5A5X.com )
.判断 (参数_代码文本 = “R”)
    J_代码 = 82
.判断 (参数_代码文本 = “S”)
    J_代码 = 83
.判断 (参数_代码文本 = “T”)
    J_代码 = 84
.判断 (参数_代码文本 = “U”)
    J_代码 = 85
.判断 (参数_代码文本 = “V”)
    J_代码 = 86
.判断 (参数_代码文本 = “W”)
    J_代码 = 87
.判断 (参数_代码文本 = “X”)
    J_代码 = 88
.判断 (参数_代码文本 = “Y”)
    J_代码 = 89
.判断 (参数_代码文本 = “Z”)
    J_代码 = 90
.判断 (参数_代码文本 = “空格”)
    J_代码 = 32
.判断 (参数_代码文本 = “PageUp”)
    J_代码 = 33
.判断 (参数_代码文本 = “PageDown”)
    J_代码 = 34
.判断 (参数_代码文本 = “End”)
    J_代码 = 35
.判断 (参数_代码文本 = “Home”)
    J_代码 = 36
.判断 (参数_代码文本 = “Insert”)
    J_代码 = 45
.判断 (参数_代码文本 = “Delete”)
    J_代码 = 46
.判断 (参数_代码文本 = “←”)
    J_代码 = 37
.判断 (参数_代码文本 = “↑”)
    J_代码 = 38
.判断 (参数_代码文本 = “→”)
    J_代码 = 39
.判断 (参数_代码文本 = “↓”)
    J_代码 = 40
.判断 (参数_代码文本 = “*”)
    J_代码 = 106
.判断 (参数_代码文本 = “+”)
    J_代码 = 107
.判断 (参数_代码文本 = “;”)
    J_代码 = 186
.判断 (参数_代码文本 = “=”)
    J_代码 = 187
.判断 (参数_代码文本 = “,”)
    J_代码 = 188
.判断 (参数_代码文本 = “-”)
    J_代码 = 189
.判断 (参数_代码文本 = “.”)
    J_代码 = 190
.判断 (参数_代码文本 = “/”)
    J_代码 = 191
.判断 (参数_代码文本 = “`”)
    J_代码 = 192
.判断 (参数_代码文本 = “[”)
    J_代码 = 219
.判断 (参数_代码文本 = “\”)
    J_代码 = 220
.判断 (参数_代码文本 = “]”)
    J_代码 = 221
.判断 (参数_代码文本 = “'”)
    J_代码 = 222
.默认
.判断结束
返回 (J_代码)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值