Introducción
La automatización de la entrada y el manejo de eventos del teclado son aspectos clave tanto para probar aplicaciones como para crear scripts y utilidades personalizadas. Cuando necesitas presionar teclas mediante programación, reaccionar a la entrada del usuario o crear tus propios atajos de teclado, Python ofrece una excelente librería: keyboard.
keyboard es una potente herramienta multiplataforma que te permite controlar el teclado a nivel de sistema operativo. Funciona tanto como un listener como un generador de eventos: puedes interceptar y emular la entrada del teclado.
En este artículo, exploraremos la librería keyboard en detalle, desde la instalación hasta escenarios avanzados, incluyendo la creación de macros, atajos globales, registradores de teclas y el manejo de combinaciones complejas.
Instalación y requisitos
La instalación de la librería se realiza a través de pip:
pip install keyboard
Requisitos del sistema
Windows: La librería funciona sin configuración adicional.
Linux: Requiere permisos de root para capturar eventos globales del teclado. Para uso local, puedes ejecutar con sudo.
macOS: Tiene limitaciones parciales y requiere permisos adicionales en la configuración de seguridad. Debes otorgar acceso a las funciones de accesibilidad.
Funcionalidades principales de la librería
La librería keyboard ofrece una amplia gama de funciones para trabajar con el teclado:
Emulación de pulsaciones de teclas
La librería permite simular pulsaciones de teclas mediante programación, lo que es útil para automatizar tareas repetitivas.
Captura de eventos del teclado
Posibilidad de monitorear las pulsaciones de teclas en tiempo real, creando tus propios manejadores de eventos.
Creación de atajos de teclado
Registro de combinaciones de teclas globales para acceder rápidamente a funciones.
Grabación y reproducción de macros
Funcionalidad para grabar secuencias de pulsaciones de teclas y reproducirlas posteriormente.
Funciones básicas de emulación de teclas
Ingreso de texto
import keyboard
# Ingreso de texto simple
keyboard.write("¡Hola, mundo!")
# Ingreso con retardo entre caracteres
keyboard.write("Escritura lenta", delay=0.1)
Presionar y soltar teclas
# Presionar una tecla (sin soltarla)
keyboard.press("ctrl")
# Soltar una tecla
keyboard.release("ctrl")
# Presionar y soltar inmediatamente
keyboard.press_and_release("enter")
Combinaciones de teclas
# Presionar una combinación
keyboard.send("ctrl+c")
keyboard.send("ctrl+shift+n")
# Forma alternativa
keyboard.press("ctrl")
keyboard.press("c")
keyboard.release("c")
keyboard.release("ctrl")
Trabajo con atajos de teclado
Registro de atajos de teclado
import keyboard
def abrir_bloc_notas():
print("¡Abriendo bloc de notas!")
# Aquí puedes agregar código para abrir la aplicación
# Registro de un atajo de teclado
keyboard.add_hotkey("ctrl+alt+n", abrir_bloc_notas)
# Esperar a que se presione Esc para salir
keyboard.wait("esc")
Combinaciones múltiples
# Combinación de varias pulsaciones secuenciales
keyboard.add_hotkey("ctrl+alt+a, ctrl+alt+b", lambda: print("¡Combinación compleja!"))
Gestión de atajos de teclado
# Eliminar un atajo específico
hotkey = keyboard.add_hotkey("ctrl+space", lambda: print("¡Atajo!"))
keyboard.remove_hotkey(hotkey)
# Limpiar todos los atajos
keyboard.clear_hotkeys()
Manejo de eventos del teclado
Monitoreo de pulsaciones
def al_presionar_tecla(event):
print(f"Tecla presionada: {event.name}")
def al_soltar_tecla(event):
print También en la biblioteca
Trabajo con fechas en Kotlin: bibliotecas y herramientas para el desarrollo
NestJS para TypeScript: guía completa con ejemplos
Migraciones de bases de datos en Java: descripción general de herramientas populares
Generación de PDF en JavaScript: biblioteca PDFKit