! 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
truecuando la pulsación y la liberación tienen éxito, yfalsesi 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
:presso:send_text, la nueva operación devuelvefalse, "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())