! Нажатие клавиши аппаратной клавиатуры (: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())