精易论坛
标题: 功能键状态问题 [打印本页]
作者: Ls60 时间: 2022-1-15 23:58
标题: 功能键状态问题
如题,功能键状态问题:按照图片里的顺序按功能键,发现不能正常输出我现在按的功能键
目前的情况就是:三个键任意顺序按是能正常输出的,但如果是两个功能键按图中顺序按下,会出现问题(红色标记)
1 | 2 | 3 | 调试结果 | 想要结果 |
Ctrl | Shift | Alt | Ctrl+Shift+Alt+ | Ctrl+Shift+Alt+ |
Ctrl | Alt | Shift | Ctrl+Shift+Alt+ | Ctrl+Shift+Alt+ |
Shift | Ctrl | Alt | Ctrl+Shift+Alt+ | Ctrl+Shift+Alt+ |
Shift | Alt | Ctrl | Ctrl+Shift+Alt+ | Ctrl+Shift+Alt+ |
Alt | Shift | Ctrl | Ctrl+Shift+Alt+ | Ctrl+Shift+Alt+ |
Alt | Ctrl | Shift | Ctrl+Shift+Alt+ | Ctrl+Shift+Alt+ |
| | | | |
Ctrl | Shift | | Ctrl+Shift+ | Ctrl+Shift+ |
Ctrl | Alt | | Ctrl+Alt+ | Ctrl+Alt+ |
Shift | Ctrl | | Shift+ | Ctrl+Shift+ |
Shift | Alt | | Shift+Alt | Shift+Alt |
Alt | Ctrl | | Alt+ | Ctrl+Alt+ |
Alt | Shift | | Alt+ | Shift+Alt+ |
我感觉这个是bug,求大神修正,最好不要直接使用功能键状态进行计算得出
下面是我的源码
窗口程序集名 | 保 留 | 保 留 | 备 注 |
窗口程序集_启动窗口 | | | |
|
_热键1_按下某键 | 逻辑型 | |
|
键代码 | 整数型 | | | |
功能键状态 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
键名 | 文本型 | | |
监控功能键 | 整数型 | | |
如果真 (位与 (功能键状态,
#Ctrl键状态 ) ≠ 0
)
调试输出 (“Ctrl键状态” +
到文本 (位与 (功能键状态,
#Ctrl键状态 ))
)
键名 = 键名 +
“Ctrl+”
监控功能键 = 监控功能键 + 1

如果真 (位与 (功能键状态,
#Shift键状态 ) ≠ 0
)
调试输出 (“Ctrl键状态” +
到文本 (位与 (功能键状态,
#Ctrl键状态 ))
)
键名 = 键名 +
“Shift+”
监控功能键 = 监控功能键 + 2

如果真 (位与 (功能键状态,
#Alt键状态 ) ≠ 0
)
调试输出 (“Ctrl键状态” +
到文本 (位与 (功能键状态,
#Ctrl键状态 ))
)
键名 = 键名 +
“Alt+”
监控功能键 = 监控功能键 + 4
调试输出 (键名
)
作者: 超级萌新 时间: 2022-1-15 23:58
|
__启动窗口_按下某键 | 逻辑型 | |
|
键代码 | 整数型 | | | |
功能键状态 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
键名 | 文本型 | | |
a | 整数型 | | |
s | 整数型 | | |
c | 整数型 | | |
X | 整数型 | | |
c =
位与 (功能键状态,
#Ctrl键状态 )s =
位与 (功能键状态,
#Shift键状态 )a =
位与 (功能键状态,
#Alt键状态 )X = c + s + a
判断 (键代码 =
#Ctrl键 且 X = 2
)
键名 =
“Shift+Ctrl”
判断 (键代码 =
#Ctrl键 且 X = 4
)
键名 =
“Alt+Ctrl”
判断 (键代码 =
#Shift键 且 X = 4
)
键名 =
“Alt+Shift”
判断 (键代码 =
#Ctrl键 且 X = 0
)
键名 =
“Ctrl”
判断 (键代码 =
#Shift键 且 X = 0
)
键名 =
“Shift”
判断 (键代码 =
#Alt键 且 X = 0
)
键名 =
“Alt”
判断 (X = 3
)
键名 =
“Ctrl+Shift”
判断 (X = 5
)
键名 =
“Ctrl+Alt”
判断 (X = 6
)
键名 =
“Shift+Alt”
判断 (X = 7
)
键名 =
“Ctrl+Alt+Shift”

调试输出 (X, 键代码, 键名
)
作者: 超级萌新 时间: 2022-1-16 00:39
不出的原因是 ctrl状态等于0 而你写的是 不等于0才输出,你可以改一下,因为这是不同的情况
不算bug
补充内容 (2022-1-16 00:43):
不好意思 是位与的问题 不是ctrl状态=0 0.0
作者: 汉族 时间: 2022-1-16 00:40
你这调试输出 都是复制的 你想需要啥 自己 下断点 F9 下段
作者: 汉族 时间: 2022-1-16 00:44
测试一下 状态键 对应 3 = ctrl+shift , 5=ctrl+alt , 7=3个
作者: Ls60 时间: 2022-1-16 00:50
一开始我就是这样试的,貌似不行。
ctrl不能接在shift后面
ctrl、shift不能接在alt后面,如图
作者: 汉族 时间: 2022-1-16 00:52
|
__启动窗口_按下某键 | 逻辑型 | |
|
键代码 | 整数型 | | | |
a | 整数型 | | | |
调试输出 (a
)
如果真 (a = 6
或 a = 7
)
标题 =
“3键”
如果真 (a = 4
或 a = 5
)
标题 =
“2键”
如果真 (a = 2
或 a = 3
)
标题 =
“1键”
作者: 汉族 时间: 2022-1-16 00:54
如果真 (a = 6
或 a = 7
) 
标题 =
“3键”
如果真 (a = 4
或 a = 5
) 
标题 =
“2键”
如果真 (a = 2
或 a = 3
) 
标题 =
“1键”
没有先后顺序,这样写
补充内容 (2022-1-16 00:57):
这样测试好像也不太对,
欢迎光临 精易论坛 (https://125.confly.eu.org/) |
Powered by Discuz! X3.4 |