Saltar al contenido principal

! Pulsar una vez una tecla del teclado de hardware (:press)

Este método solo está disponible a partir de las versiones posteriores a 20260805

Declaración

éxito, mensaje_error = objeto_teclado_hardware:press(código_tecla[, tiempo_pulsación])
éxito, mensaje_error = objeto_teclado_hardware:press(Usage_Page, Usage_ID[, tiempo_pulsación])

Parámetros

  • Código de tecla Tipo texto; utiliza el mismo mapeo de nombres de teclas que key.press.
  • Usage Page Tipo entero; el objeto de teclado de hardware actual solo acepta Keyboard/Keypad Usage Page 0x07.
  • Usage ID Tipo entero; número de la tecla física, no una codificación de caracteres.
  • Tiempo de pulsación Tipo real, parámetro opcional; cantidad de milisegundos durante los que se mantiene pulsada la tecla; valor predeterminado 10 milisegundos.

Valor devuelto

  • Éxito Tipo booleano; devuelve true cuando la pulsación y la liberación tienen éxito, y false si falla.
  • Mensaje de error Tipo texto; devuelve el mensaje de error cuando la operación falla.

Descripción

Pulsa la tecla objetivo, espera el tiempo especificado y después la suelta. Durante la espera se cede implícitamente; antes de que el método devuelva el control, otros hilos pueden tener la oportunidad de ejecutarse.

  • Este método protege las teclas normales y modificadoras que ya estaban pulsadas antes de la llamada; no las libera para completar la operación actual.
  • Si el mismo teclado de hardware está ejecutando una secuencia de :press o :send_text, la nueva operación devuelve false, "hardware keyboard is busy".
  • Si el envío falla, no reintenta automáticamente con otro método de entrada.

Ejemplo

local keyboard = assert(key.connect_keyboard())

assert(keyboard:press("a"))
assert(keyboard:press(0x07, 4, 30)) -- Tecla A del teclado; se mantiene pulsada durante 30 milisegundos

assert(keyboard:disconnect())