Files
Mover-Mouse/AGENTS.md
T
sargatxetandCopilot App 5ecdde187e Mover: utilidad para mover el ratón tras inactividad
- Mover.ps1: activación tras inactividad, parada al detectar uso, deslizamiento
  animado visible, mensajes de estado y cierre de instancias previas.
- main.py: movimiento solo tras 3 minutos de inactividad.
- Documentación: README, AGENTS, CHANGELOG y TODO.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-10-07 08:33:17 +02:00

2.0 KiB

AGENTS.md

Guía para agentes de IA y colaboradores que trabajen en este repositorio.

Proyecto

Utilidad para Windows que mueve el puntero del ratón solo tras un periodo de inactividad del usuario y se detiene al detectar uso real. Ver README.md.

  • Mover.ps1: implementación principal (PowerShell + C# embebido con Add-Type).
  • main.py: implementación original en Python (pyautogui), mantenida como referencia.

Normas

  • Idioma: comentarios, documentación y mensajes en castellano.
  • Toda función nueva debe llevar documentación (<# .SYNOPSIS #> en PowerShell, /// <summary> en C#, docstrings en Python). Actualizar la documentación al modificarlas.
  • No modificar ficheros sin autorización previa del usuario.
  • Registrar los cambios en CHANGELOG.md y las tareas pendientes en TODO.md.

Particularidades técnicas

  • Codificación: Mover.ps1 debe mantenerse en UTF-8 con BOM; sin BOM, Windows PowerShell 5.1 lo lee como ANSI y corrompe las tildes. Tras editar, comprobar los primeros bytes (239,187,191).
  • Detección de actividad: los movimientos propios actualizan GetLastInputInfo. Por eso se guarda dwTime tras cada movimiento y cualquier cambio posterior se interpreta como uso real. No romper este mecanismo.
  • Instancias: el script cierra al arrancar otras instancias que ejecuten Mover.ps1 con -File. Durante las pruebas no dejar instancias huérfanas.
  • Movimiento: se usa SendInput con MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_VIRTUALDESK para evitar la aceleración del puntero y soportar varios monitores.
  • Add-Type puede tardar ~20 s en un proceso nuevo; no confundir con un bloqueo.

Validación

# Sintaxis
$err=$null; [System.Management.Automation.Language.Parser]::ParseFile('Mover.ps1',[ref]$null,[ref]$err) | Out-Null; $err.Count
# Prueba funcional rápida
powershell -ExecutionPolicy Bypass -File .\Mover.ps1 -TiempoInactividad 10
# Python
python -m py_compile main.py