Introdução
A automação de entrada e o processamento de eventos do teclado são aspectos importantes tanto para testar aplicações quanto para criar scripts e utilitários personalizados. Quando você precisa pressionar teclas programaticamente, reagir a entradas ou criar suas próprias teclas de atalho, o Python oferece uma excelente biblioteca: keyboard.
keyboard é uma ferramenta multiplataforma poderosa que permite controlar o teclado no nível do sistema operacional. Ela funciona como um ouvinte e gerador de eventos: você pode tanto capturar quanto emular a entrada do teclado.
Neste artigo, vamos explorar a biblioteca keyboard desde a instalação até cenários avançados, incluindo criação de macros, teclas de atalho globais, loggers e manipulação de combinações de teclas.
Instalação e Requisitos
A instalação da biblioteca é feita via pip:
pip install keyboard
Requisitos do Sistema
Windows: A biblioteca funciona sem configurações adicionais.
Linux: Requer acesso root para capturar eventos globais do teclado. Para uso local, execute com sudo.
macOS: Parcialmente limitada e requer permissões adicionais nas configurações de segurança. É necessário conceder acesso aos recursos de acessibilidade.
Principais Funcionalidades da Biblioteca
A biblioteca keyboard oferece uma ampla gama de funções para trabalhar com o teclado:
Emulação de Pressionamento de Teclas
A biblioteca permite simular pressionamentos de teclas programaticamente, útil para automatizar tarefas repetitivas.
Captura de Eventos do Teclado
Possibilidade de monitorar pressionamentos de teclas em tempo real, criando seus próprios manipuladores de eventos.
Criação de Teclas de Atalho
Registro de combinações globais de teclas para acesso rápido a funções.
Gravação e Reprodução de Macros
Funcionalidade para gravar sequências de pressionamentos de teclas e reproduzi-las posteriormente.
Funções Básicas de Emulação de Teclas
Inserir Texto
import keyboard
# Inserção simples de texto
keyboard.write("Olá, mundo!")
# Inserção com atraso entre caracteres
keyboard.write("Digitação lenta", delay=0.1)
Pressionar e Soltar Teclas
# Pressionar uma tecla (sem soltar)
keyboard.press("ctrl")
# Soltar uma tecla
keyboard.release("ctrl")
# Pressionar e soltar imediatamente
keyboard.press_and_release("enter")
Combinações de Teclas
# Pressionar uma combinação
keyboard.send("ctrl+c")
keyboard.send("ctrl+shift+n")
# Método alternativo
keyboard.press("ctrl")
keyboard.press("c")
keyboard.release("c")
keyboard.release("ctrl")
Trabalhando com Teclas de Atalho
Registrando Teclas de Atalho
import keyboard
def abrir_bloco_de_notas():
print("Abrindo bloco de notas!")
# Aqui você pode adicionar código para abrir o aplicativo
# Registrando uma tecla de atalho
keyboard.add_hotkey("ctrl+alt+n", abrir_bloco_de_notas)
# Aguardando pressionamento de Esc para sair
keyboard.wait("esc")
Múltiplas Combinações
# Combinação de vários pressionamentos sequenciais
keyboard.add_hotkey("ctrl+alt+a, ctrl+alt+b", lambda: print("Combinação complexa!"))
Gerenciando Teclas de Atalho
# Remover uma tecla de atalho específica
hotkey = keyboard.add_hotkey("ctrl+space", lambda: print("Atalho!"))
keyboard.remove_hotkey(hotkey)
# Limpar todas as teclas de atalho
keyboard.clear_hotkeys()
Processamento de Eventos do Teclado
Monitorando Pressionamentos
def ao_pressionar_tecla(event):
print(f"Tecla pressionada: {event.name}")
def ao_soltar_tecla(event):
print Também na biblioteca
Container de Injeção de Dependência para Swift (iOS/macOS): Swinject
Cliente HTTP para JavaScript (Node.js): principais bibliotecas
Aprendizado de Máquina em Rust: visão geral das bibliotecas para ML e Data Science
Geração de PDF em Rust: visão geral de bibliotecas e ferramentas
Boost para C++: guia completo com exemplos