! Criar um objeto de teclado de hardware independente (key.connect_keyboard)
Esta função está disponível somente a partir da versão 20260805.
Declaração
objeto_teclado, mensagem_de_erro = key.connect_keyboard([atributos_de_configuracao])
Parâmetros
- atributos_de_configuracao Tabela opcional usada para definir os atributos comuns do dispositivo abaixo; os valores no bloco de código são os padrões quando omitidos:
{
VendorID = 0x5858,
ProductID = 0x0001,
Product = "XXTouch Keyboard",
Manufacturer = "XXTouch",
Transport = "USB",
}
Também é possível definir VersionNumber, SerialNumber e LocationID. Não há garantia de que os demais atributos terão efeito.
Valores retornados
- objeto_teclado
Objeto de teclado de hardware; retornado quando a criação é bem-sucedida, e
nilquando falha. - mensagem_de_erro Texto; retorna a mensagem de erro quando a criação falha.
Quando a criação falha, os dois valores retornados são nil, error.
Descrição
Cria um objeto de teclado de hardware independente; o estado das teclas e o ciclo de vida da conexão de cada objeto são independentes. Durante a espera pela conexão, a execução é cedida implicitamente e outras threads podem ter a oportunidade de executar antes do retorno da função.
Transportsó afeta a forma como o iOS ou o aplicativo de destino identifica o teclado. Defini-lo como"Bluetooth"ou"BluetoothLowEnergy"não estabelece conexão, transmissão ou pareamento Bluetooth, nem faz o teclado aparecer na lista Bluetooth de outros dispositivos.- É possível manter pressionadas no máximo 6 teclas comuns ao mesmo tempo; as teclas modificadoras não entram na contagem. Acima desse limite, o sistema de destino não consegue identificar as teclas específicas; libere algumas teclas primeiro.
- O aplicativo de destino pode não conseguir distinguir a origem da entrada de vários objetos de teclado de hardware.
- Esta função apenas cria um objeto independente e não altera as interfaces
key.*existentes; para que as interfaces existentes usem um teclado de hardware, chamekey.connect_global_keyboard. - Quando o envio falha, não tenta automaticamente outro método de entrada.
Exemplo
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()