Files
Mover-Mouse/AGENTS.md
T
sargatxetandCopilot App 5d940a741a Elimina main.py y sus referencias
Se retira la implementación en Python; Mover.ps1 queda como única
implementación. Se actualizan README, AGENTS, CHANGELOG, TODO,
.gitattributes y .gitignore.

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

42 lines
1.8 KiB
Markdown

# 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 (PowerShell + C# embebido con `Add-Type`).
## Normas
- Idioma: comentarios, documentación y mensajes en **castellano**.
- Toda función nueva debe llevar documentación (`<# .SYNOPSIS #>` en PowerShell,
`/// <summary>` en C#). 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
```powershell
# 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
```