! Pressionar uma tecla do teclado de hardware (:press)
Este método está disponível somente a partir da versão 20260805.
Declarações
sucesso, mensagem_de_erro = objeto_teclado:press(codigo_da_tecla[, tempo_de_pressao])
sucesso, mensagem_de_erro = objeto_teclado:press(Usage_Page, Usage_ID[, tempo_de_pressao])
Parâmetros
- codigo_da_tecla
Texto; usa o mesmo mapeamento de nomes de teclas que
key.press. - Usage Page
Inteiro; o objeto de teclado de hardware atual aceita somente a Keyboard/Keypad Usage Page
0x07. - Usage ID Inteiro; número da tecla física, não uma codificação de caractere.
- tempo_de_pressão Número real opcional; quantidade de milissegundos para manter a tecla pressionada, com padrão de 10 milissegundos.
Valores retornados
- sucesso
Booleano; retorna
truequando a tecla é pressionada e liberada com sucesso, efalsequando falha. - mensagem_de_erro Texto; retorna a mensagem de erro quando a operação falha.
Descrição
Pressiona a tecla de destino e a libera após o tempo especificado. Durante a espera, a execução é cedida implicitamente e outras threads podem ter a oportunidade de executar antes do retorno do método.
- Este método preserva as teclas comuns e modificadoras que já estavam pressionadas antes da chamada; não as libera para concluir a operação atual.
- Se o mesmo teclado de hardware estiver executando uma sequência
:pressou:send_text, a nova operação retornaráfalse, "hardware keyboard is busy". - Quando o envio falha, não tenta automaticamente outro método de entrada.
Exemplo
local keyboard = assert(key.connect_keyboard())
assert(keyboard:press("a"))
assert(keyboard:press(0x07, 4, 30)) -- Keyboard A, mantém pressionada por 30 milissegundos
assert(keyboard:disconnect())