! ハードウェアキーボードのキーを押して離す (: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)) -- A キーを 30 ミリ秒押したままにする
assert(keyboard:disconnect())