155 lines
4.4 KiB
Batchfile
155 lines
4.4 KiB
Batchfile
@echo off
|
|
REM === Automatic Mouse Mover ===
|
|
setlocal enabledelayedexpansion
|
|
|
|
echo ========================================
|
|
echo Automatic Mouse Mover
|
|
echo ========================================
|
|
echo.
|
|
echo This script will move your mouse cursor slightly
|
|
echo to prevent screen lock or idle status.
|
|
echo.
|
|
echo ========================================
|
|
echo.
|
|
|
|
REM Get interval
|
|
:GET_INTERVAL
|
|
set /p INTERVAL="Enter interval in seconds (3-10): "
|
|
|
|
REM Validate interval
|
|
if %INTERVAL% LSS 3 (
|
|
echo Invalid! Minimum is 3 seconds.
|
|
goto GET_INTERVAL
|
|
)
|
|
if %INTERVAL% GTR 10 (
|
|
echo Invalid! Maximum is 10 seconds.
|
|
goto GET_INTERVAL
|
|
)
|
|
|
|
echo.
|
|
REM Get duration
|
|
echo Duration options:
|
|
echo [1] Continuous (press Ctrl+C to stop)
|
|
echo [2] Specific duration in minutes
|
|
echo.
|
|
set /p DURATION_CHOICE="Select option (1-2): "
|
|
|
|
if "%DURATION_CHOICE%"=="1" (
|
|
set DURATION_MINUTES=0
|
|
set DURATION_TEXT=Continuous
|
|
) else if "%DURATION_CHOICE%"=="2" (
|
|
set /p DURATION_MINUTES="Enter duration in minutes: "
|
|
set DURATION_TEXT=!DURATION_MINUTES! minutes
|
|
) else (
|
|
echo Invalid selection!
|
|
timeout /t 2 >nul
|
|
goto GET_INTERVAL
|
|
)
|
|
|
|
echo.
|
|
echo ========================================
|
|
echo Configuration:
|
|
echo - Interval: %INTERVAL% seconds
|
|
echo - Duration: %DURATION_TEXT%
|
|
echo - Movement: Random 1-5 pixels
|
|
echo - Auto-pause when you move the mouse
|
|
echo ========================================
|
|
echo.
|
|
echo Press Ctrl+C to stop at any time.
|
|
echo.
|
|
pause
|
|
|
|
cls
|
|
echo Starting Mouse Mover...
|
|
echo.
|
|
|
|
REM Create PowerShell script file
|
|
(
|
|
echo Add-Type -TypeDefinition @"
|
|
echo using System;
|
|
echo using System.Runtime.InteropServices;
|
|
echo public class MouseMover {
|
|
echo [DllImport("user32.dll"^)]
|
|
echo public static extern bool SetCursorPos(int X, int Y^);
|
|
echo [DllImport("user32.dll"^)]
|
|
echo public static extern bool GetCursorPos(out POINT lpPoint^);
|
|
echo public struct POINT {
|
|
echo public int X;
|
|
echo public int Y;
|
|
echo }
|
|
echo }
|
|
echo "@
|
|
echo.
|
|
echo $interval = %INTERVAL%
|
|
echo $durationMinutes = %DURATION_MINUTES%
|
|
echo $random = New-Object System.Random
|
|
echo $startTime = Get-Date
|
|
echo $moveCount = 0
|
|
echo.
|
|
echo Write-Host ""
|
|
echo Write-Host "========================================" -ForegroundColor Green
|
|
echo Write-Host "Mouse Mover Active" -ForegroundColor Green
|
|
echo Write-Host "========================================" -ForegroundColor Green
|
|
echo Write-Host ""
|
|
echo Write-Host "Monitoring mouse movement..."
|
|
echo Write-Host "Press Ctrl+C to stop"
|
|
echo Write-Host ""
|
|
echo.
|
|
echo $lastPos = New-Object MouseMover+POINT
|
|
echo [void][MouseMover]::GetCursorPos([ref]$lastPos^)
|
|
echo.
|
|
echo while ($true^) {
|
|
echo if ($durationMinutes -gt 0^) {
|
|
echo $elapsed = ((Get-Date^) - $startTime^).TotalMinutes
|
|
echo if ($elapsed -ge $durationMinutes^) {
|
|
echo Write-Host ""
|
|
echo Write-Host "Duration reached. Stopping..." -ForegroundColor Yellow
|
|
echo break
|
|
echo }
|
|
echo }
|
|
echo.
|
|
echo $currentPos = New-Object MouseMover+POINT
|
|
echo [void][MouseMover]::GetCursorPos([ref]$currentPos^)
|
|
echo.
|
|
echo if ($currentPos.X -ne $lastPos.X -or $currentPos.Y -ne $lastPos.Y^) {
|
|
echo $lastPos = $currentPos
|
|
echo $time = Get-Date -Format 'HH:mm:ss'
|
|
echo Write-Host "[$time] User moved mouse - Paused" -ForegroundColor Cyan
|
|
echo Start-Sleep -Seconds $interval
|
|
echo continue
|
|
echo }
|
|
echo.
|
|
echo $moveX = $random.Next(-5, 6^)
|
|
echo $moveY = $random.Next(-5, 6^)
|
|
echo $newX = $currentPos.X + $moveX
|
|
echo $newY = $currentPos.Y + $moveY
|
|
echo.
|
|
echo [void][MouseMover]::SetCursorPos($newX, $newY^)
|
|
echo $moveCount++
|
|
echo.
|
|
echo $time = Get-Date -Format 'HH:mm:ss'
|
|
echo Write-Host "[$time] Auto-moved mouse ($moveCount moves)" -ForegroundColor Green
|
|
echo.
|
|
echo [void][MouseMover]::GetCursorPos([ref]$lastPos^)
|
|
echo.
|
|
echo Start-Sleep -Seconds $interval
|
|
echo }
|
|
echo.
|
|
echo Write-Host ""
|
|
echo Write-Host "========================================" -ForegroundColor Yellow
|
|
echo Write-Host "Mouse Mover Stopped" -ForegroundColor Yellow
|
|
echo Write-Host "Total moves: $moveCount" -ForegroundColor Yellow
|
|
echo Write-Host "========================================" -ForegroundColor Yellow
|
|
) > "%TEMP%\MouseMover.ps1"
|
|
|
|
REM Execute PowerShell script
|
|
powershell -ExecutionPolicy Bypass -File "%TEMP%\MouseMover.ps1"
|
|
|
|
REM Cleanup
|
|
del "%TEMP%\MouseMover.ps1" >nul 2>&1
|
|
|
|
echo.
|
|
echo ========================================
|
|
echo Script finished
|
|
echo ========================================
|
|
pause |