Pular para o conteúdo principal

! 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 true quando a tecla é pressionada e liberada com sucesso, e false quando 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 :press ou :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())