Перейти к основному содержимому

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