Files
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

73 lines
2.6 KiB
Markdown

# 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 en PowerShell. Sin dependencias externas. |
## Requisitos
- Windows (usa las APIs `user32`/`kernel32`).
- Windows PowerShell 5.1 o PowerShell 7.
## 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.