跳到主要内容

WaitKey 等待按键

🎯功能

等待在任意窗口或者指定窗口按任意键或者指定的一个或者多个键,并获得按键码或指定键的序号,支持组合键和鼠标左中右键。

📜语法

按键码 = Plugin.WndEx7_71.WaitKey(窗口句柄, 按键, 模式, 超时时间)

📥参数

参数数据类型解释
窗口句柄长整型数0时,无窗口限制。非0时只等待并获得该窗口的按键,这里有两种方式,一种是该窗口是顶层窗口,一种该窗口是焦点窗口,具体选用哪种方式由参数3(模式)决定。
按键整型数字符串数组取整型数0时,等待并获得任意键。使用字符串和数组时,等待并获得字符串和数组中指定的一个或多个按键或组合键。字符串和数组中按键和组合键用键名字符串表示,组合键的多个键用"+"号分隔,字符串方式中指定多个按键或组合键用 "|" 号分隔。组合键支持shiftctrlalt的单个或者多个加一个其他按键。按键名可参考虚拟键码表。
模式长整型数取值可以是下面的一个或多个,默认值取0。如果要同时使用多个值,可将多个值做或运算或者加法运算。
超时时间长整型数时间单位是毫秒,取0时永久等待。
参数(模式)可取值如下
模式说明
1只捕获键盘(默认键盘和鼠标都捕获)。仅参数2(按键)是整型数0时有效。
2只捕获鼠标(默认键盘和鼠标都捕获)。仅参数2(按键)是整型数0时有效。
4返回值的按键码区分左右键。仅参数2(按键)是整型数0时有效。
8返回值的按键码包含shiftctrlalt。仅参数2(按键)是整型数0时有效。
16捕获按下(默认捕获弹起)。
256选择参数1(窗口句柄)的方式:用于焦点窗口(默认用于顶层窗口)。

📤返回

整数型, 参数2(按键)为0时,返回按键码;参数2(按键)为非0时,返回第几个按键的顺序号(从0开始);超时返回-1;参数1(窗口句柄)的窗口关闭返回-2;错误返回-3

关于返回的按键码,若参数3(模式)没取8或者不是组合键,返回值和常规按键码没有区别;若参数3(模式)取了8,返回值在组合键时,返回值是下表中的一个或多个值和常规按键码做或运算或者加法运算。

说明
256(&H100)shift键按下状态,参数3(模式)的值不取4时使用此值
512(&H200)ctrl键按下状态,参数3(模式)的值不取4时使用此值
1024(&H400)alt键按下状态,参数3(模式)的值不取4时使用此值
65536(&H10000)左shift键按下状态,参数3(模式)的值取4时使用此值
131072(&H20000)右shift键按下状态,参数3(模式)的值不取4时使用此值
262144(&H40000)左ctrl键按下状态,参数3(模式)的值取4时使用此值
524288(&H80000)右ctrl键按下状态,参数3(模式)的值取4时使用此值
1048576(&H100000)左alt键按下状态,参数3(模式)的值取4时使用此值
2097152(&H200000)右alt键按下状态,参数3(模式)的值取4时使用此值

💡示例

//10秒内按下D键、Alt键、Shif+G、Ctrl+F1、Shift+Alt+9中的任意一个,可弹出对应键的提示
key = Plugin.WndEx7_71.WaitKey(0,"D|Alt|Shift+G|Ctrl+F1|Shift+Alt+9",16,10000)
Select Case key
Case 0
MsgBox "D键按下"
Case 1
MsgBox "Alt键按下"
Case 2
MsgBox "Shift+G键按下"
Case 3
MsgBox "Ctrl+F1键按下"
Case 4
MsgBox "Shift+Alt+9键按下"
Case -1
MsgBox "已超时"
Case -2
MsgBox "目标窗口已关闭"
Case -3
MsgBox "错误"
End Select

📘备注