! 按一下硬件键盘按键 (:press)
该方法在 20260805 以后版本方可使用
声明
是否成功, 错误信息 = 硬件键盘对象:press(按键码[, 按下时间])
是否成功, 错误信息 = 硬件键盘对象:press(Usage_Page, Usage_ID[, 按下时间])
参数
- 按键码
文本型,与
key.press使用同一份按键名称映射。 - Usage Page
整数型,当前硬件键盘对象只接受 Keyboard/Keypad Usage Page
0x07。 - Usage ID 整数型,物理按键编号,不是字符编码。
- 按下时间 实数型,可选参数,按下按键后保持的毫秒数,默认 10 毫秒。
返回值
- 是否成功
布尔型,按下并释放成功时返回
true,失败时返回false。 - 错误信息 文本型,操作失败时返回错误信息。
说明
按下目标按键,等待指定时间后再将其松开。等待期间会隐式让出,在方法返回之前,其他线程可能获得执行机会。
- 本方法会保护调用前已经按下的普通键和修饰键,不会为了完成当前操作而释放它们。
- 同一硬件键盘正在执行
:press或:send_text序列时,新的操作返回false, "hardware keyboard is busy"。 - 发送失败时不会自动改用其它输入方式重试。
示例
local keyboard = assert(key.connect_keyboard())
assert(keyboard:press("a"))
assert(keyboard:press(0x07, 4, 30)) -- Keyboard A,保持 30 毫秒
assert(keyboard:disconnect())