跳到主要内容

WaitKeyWindow 等待按键并获得相关窗口

🎯功能

等待按任意键或者指定的一个或者多个键,并获得按键码或指定键的序号和相关窗口句柄,支持组合键和鼠标左中右键。相关窗口是接受按键输入的顶层窗口或者焦点窗口。

📜语法

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

📥参数

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

📤返回

整型数, 参数1(按键)为0时,返回按键码;参数1(按键)为非0时,返回第几键顺序号(从0开始);超时返回-1;错误返回-3。 关于返回的按键码,若参数2(模式)没取8或者不是组合键,返回值和常规按键码没有区别;若参数2(模式)取了8,返回值在组合键时,返回值是下表中的一个或多个值和常规按键码做或运算或者加法运算。

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

💡示例

//10秒内按下D键、Alt键、Shif+G、Ctrl+F1、Shift+Alt+9中的任意一个,可弹出对应键和窗口句柄的提示
key = Plugin.WndEx7_71.WaitKeyWindow("D|Alt|Shift+G|Ctrl+F1|Shift+Alt+9",16 Or 256,10000,hwnd)
Select Case key
Case 0
MsgBox "D键按下,焦点窗口:" & CStr(hwnd)
Case 1
MsgBox "Alt键按下,焦点窗口:" & CStr(hwnd)
Case 2
MsgBox "Shift+G键按下,焦点窗口:" & CStr(hwnd)
Case 3
MsgBox "Ctrl+F1键按下,焦点窗口:" & CStr(hwnd)
Case 4
MsgBox "Shift+Alt+9键按下,焦点窗口:" & CStr(hwnd)
Case -1
MsgBox "已超时"
Case -3
MsgBox "错误"
End Select

📘备注