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

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