La librería más usada para controlar teclado y ratón es:
pyautogui
Permite:
Mover el ratón
Hacer clic
Escribir texto
Pulsar teclas
Tomar capturas de pantalla
Detectar posiciones del cursor
1. Instalación
pip install pyautogui
2. Control del ratón
Obtener la posición actual
import pyautogui
print(pyautogui.position())
Mover el ratón
pyautogui.moveTo(500, 300, duration=1) # x, y, tiempo
Clics
pyautogui.click() # clic izquierdo
pyautogui.doubleClick() # doble clic
pyautogui.rightClick() # clic derecho
Arrastrar
pyautogui.dragTo(800, 400, duration=1)
3. Control del teclado
Escribir texto
pyautogui.write("Hola mundo", interval=0.1)
Pulsar teclas
pyautogui.press("enter")
pyautogui.press("tab")
pyautogui.hotkey("ctrl", "c") # combinación de teclas
4. Capturas de pantalla
imagen = pyautogui.screenshot()
imagen.save("captura.png")
5. Localizar elementos en pantalla
PyAutoGUI puede buscar imágenes en la pantalla para automatizar clics.
boton = pyautogui.locateOnScreen("boton.png")
pyautogui.click(boton)
Muy útil para bots que interactúan con interfaces gráficas.
Consejos de seguridad
Usa
pyautogui.FAILSAFE = Truepara detener el script moviendo el ratón a la esquina superior izquierda.Añade pausas entre acciones:
pyautogui.PAUSE = 0.5
ACTIVIDAD PRÁCTICA: “Bot que abre una aplicación y escribe un mensaje”
Objetivo: que tus alumnos creen un bot que:
Abra el menú de inicio
Escriba el nombre de una aplicación (por ejemplo, “Bloc de notas”)
La abra
Escriba un texto automáticamente
Guarde el archivo
Pistas
Usa
pyautogui.hotkey("win")para abrir el menúUsa
write()para escribirUsa
press("enter")para abrir la appUsa
hotkey("ctrl", "s")para guardar
Solución propuesta (Windows)
import pyautogui
import time
pyautogui.PAUSE = 0.5
pyautogui.FAILSAFE = True
# 1. Abrir menú inicio
pyautogui.hotkey("win")
time.sleep(1)
# 2. Escribir "Bloc de notas"
pyautogui.write("notepad")
pyautogui.press("enter")
time.sleep(1)
# 3. Escribir texto
pyautogui.write("Hola, este texto fue escrito automáticamente con Python.", interval=0.05)
# 4. Guardar archivo
pyautogui.hotkey("ctrl", "s")
time.sleep(1)
pyautogui.write("mensaje_automatico.txt")
pyautogui.press("enter")
Resultado esperado
Se abre el Bloc de notas
Se escribe el mensaje automáticamente
Se guarda el archivo sin intervención humana