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

! Ввод текста аппаратной клавиатурой (:send_text)

Метод доступен в версиях после 20260805.

Объявление​

успех, сообщение_об_ошибке = объект_аппаратной_клавиатуры:send_text(текст[, задержка_между_клавишами, задержка_Shift])

Параметры​

  • Текст
    Строка, вводимый текст; поддерживаются только английские буквы, цифры, пробелы, однобайтовые символы, а также "\b", "\r", "\t".
  • Задержка между клавишами
    Вещественное число, необязательный параметр; задержка между операциями с клавишами в миллисекундах, по умолчанию 0.
  • Задержка Shift
    Вещественное число, необязательный параметр; задержка до и после нажатия или отпускания Shift в миллисекундах, по умолчанию 0.

Возвращаемое значение​

  • Успех
    Логическое значение: если весь текст отправлен успешно, возвращает true, при ошибке — false.
  • Сообщение об ошибке
    Строка; при ошибке отправки возвращает сообщение об ошибке.

Описание​

Формирует клавиши и сочетания с Shift по текущей американской раскладке Lua. Ожидание во время ввода неявно уступает выполнение, поэтому до возврата метода другие потоки могут получить возможность работать.

  • Итоговые вводимые символы по-прежнему зависят от раскладки клавиатуры целевой системы.
  • Метод сохраняет обычные клавиши и клавиши-модификаторы, нажатые до вызова.
  • Если на этой аппаратной клавиатуре выполняется последовательность :press или :send_text, новая операция возвращает false, "hardware keyboard is busy".
  • При ошибке отправки автоматического повтора другим способом ввода нет.

Пример​

local keyboard = assert(key.connect_keyboard())

assert(keyboard:send_text("Hello"))
assert(keyboard:send_text("Hello", 30, 10))

assert(keyboard:disconnect())