Control de Teclado y Ratón

 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 = True para 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:

  1. Abra el menú de inicio

  2. Escriba el nombre de una aplicación (por ejemplo, “Bloc de notas”)

  3. La abra

  4. Escriba un texto automáticamente

  5. Guarde el archivo

Pistas

  • Usa pyautogui.hotkey("win") para abrir el menú

  • Usa write() para escribir

  • Usa press("enter") para abrir la app

  • Usa 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