跳至主要內容

! 按一下硬體鍵盤按鍵 (: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())