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>
73 lines
2.6 KiB
Markdown
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.
|