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

! Создание отдельного объекта аппаратной клавиатуры (key.connect_keyboard)

Функция доступна в версиях после 20260805.

Объявление

объект_клавиатуры, сообщение_об_ошибке = key.connect_keyboard([свойства_конфигурации])

Параметры

  • Свойства конфигурации Таблица, необязательный параметр для задания следующих распространённых свойств устройства; значения в блоке кода используются по умолчанию:
{
VendorID = 0x5858,
ProductID = 0x0001,
Product = "XXTouch Keyboard",
Manufacturer = "XXTouch",
Transport = "USB",
}

Также можно задать VersionNumber, SerialNumber и LocationID. Для остальных свойств работоспособность не гарантируется.

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

  • Объект аппаратной клавиатуры Объект аппаратной клавиатуры; при успехе создания возвращается объект, при ошибке — nil.
  • Сообщение об ошибке Строка; при ошибке создания возвращает сообщение об ошибке.

При ошибке создания два возвращаемых значения образуют nil, error.

Описание

Создаёт отдельный объект аппаратной клавиатуры; состояние клавиш и жизненный цикл подключения каждого объекта независимы. Во время ожидания подключения выполнение неявно уступается, поэтому до возврата функции другие потоки могут получить возможность работать.

  • Transport влияет только на способ распознавания клавиатуры iOS или целевым App. Значения "Bluetooth" и "BluetoothLowEnergy" не устанавливают Bluetooth-соединение, не выполняют трансляцию или сопряжение и не добавляют клавиатуру в списки Bluetooth других устройств.
  • Одновременно можно удерживать не более 6 обычных клавиш; клавиши-модификаторы не учитываются. При превышении лимита целевая система не распознает конкретные клавиши, поэтому сначала отпустите часть клавиш.
  • Целевой App может не различать источники ввода нескольких объектов аппаратной клавиатуры.
  • Функция только создаёт отдельный объект и не изменяет существующие интерфейсы key.*; чтобы существующие интерфейсы использовали аппаратную клавиатуру, вызовите key.connect_global_keyboard.
  • При ошибке отправки автоматического повтора другим способом ввода нет.

Пример

local keyboard, err = key.connect_keyboard({
Product = "XXTouch Keyboard",
})
assert(keyboard, err)

assert(keyboard:press("a"))
assert(keyboard:down("LEFTSHIFT"))
assert(keyboard:press("b"))
assert(keyboard:up("LEFTSHIFT"))
assert(keyboard:send_text("Hello"))

keyboard:disconnect()