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>
This commit is contained in:
sargatxetandCopilot App committed 2026-10-07 08:33:17 +02:00
commit 5ecdde187e
8 files changed
+511

No files matched your search

+74
View File
@@ -0,0 +1,74 @@
# Mover
Utilidad para Windows que evita que el equipo se bloquee o entre en suspensión moviendo el
puntero del ratón **solo cuando el usuario lleva un tiempo sin usar el teclado ni el ratón**.
En cuanto se detecta uso real, el movimiento se detiene y se vuelve a esperar.
## Contenido
| Fichero | Descripción |
|--------------|-------------|
| `Mover.ps1` | Implementación principal en PowerShell. Sin dependencias externas. |
| `main.py` | Implementación original en Python (requiere `pyautogui`). Funcionalidad básica, sin animación. |
## Requisitos
- Windows (usa las APIs `user32`/`kernel32`).
- `Mover.ps1`: Windows PowerShell 5.1 o PowerShell 7.
- `main.py`: Python 3 y `pip install pyautogui`.
## Uso de `Mover.ps1`
```powershell
powershell -ExecutionPolicy Bypass -File .\Mover.ps1
```
### Parámetros
| Parámetro | Por defecto | Descripción |
|----------------------|-------------|-------------|
| `-TiempoInactividad` | `180` | Segundos sin uso de teclado/ratón antes de empezar a mover. |
| `-DesplazamientoMin` | `150` | Distancia mínima (píxeles) de cada deslizamiento. |
| `-DesplazamientoMax` | `300` | Distancia máxima (píxeles) de cada deslizamiento. |
| `-DuracionMs` | `600` | Duración de la animación de cada deslizamiento. |
Ejemplo de prueba rápida:
```powershell
powershell -ExecutionPolicy Bypass -File .\Mover.ps1 -TiempoInactividad 10
```
### Mensajes
```
[07:45:57] Inicializando...
[07:45:58] Mover iniciado. Esperando 180 s de inactividad (Ctrl+C para salir).
[07:49:01] Inactividad detectada: iniciando movimiento del ratón.
[07:50:12] Actividad del usuario detectada: movimiento detenido.
```
Para detenerlo: `Ctrl+C` o cerrar la ventana.
### Acceso directo
Se puede crear un acceso directo con:
- **Destino:** `C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -ExecutionPolicy Bypass -File "D:\Toni\Desarrollo\Mover\Mover.ps1"`
- **Ejecutar:** Minimizada.
## Funcionamiento
1. Al arrancar cierra cualquier instancia anterior de `Mover.ps1` (varias instancias se
interpretarían mutuamente sus movimientos como actividad del usuario).
2. Consulta la inactividad con `GetLastInputInfo`/`GetTickCount`.
3. Superado el umbral, desliza el puntero con una animación suavizada mediante `SendInput`
(coordenadas absolutas), lo que genera entrada real y evita la aceleración del puntero.
El destino se mantiene dentro del monitor actual.
4. Tras cada deslizamiento guarda el instante de la última entrada; si cambia, ha sido el
usuario y se detiene. Si el usuario mueve el ratón durante la animación, ésta se interrumpe.
## Notas
- La primera compilación de `Add-Type` puede tardar hasta ~20 s en un proceso nuevo.
- El fichero `Mover.ps1` debe guardarse en **UTF-8 con BOM** para que Windows PowerShell 5.1
muestre correctamente las tildes.