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