跳到主要内容

! 按一下硬件键盘按键 (: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())