diff --git a/files/automatic-mouse-mover.bat b/files/automatic-mouse-mover.bat index 911ed31..cf34183 100644 --- a/files/automatic-mouse-mover.bat +++ b/files/automatic-mouse-mover.bat @@ -63,22 +63,25 @@ cls echo Starting Mouse Mover... echo. -REM Create PowerShell script +REM Create PowerShell script with proper escaping ( -echo $code = @" +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 GetCursorPos(out POINT lpPoint^); -echo [DllImport("user32.dll")] -echo public static extern uint SendInput(uint nInputs, INPUT[] pInputs, int cbSize^); -echo [StructLayout(LayoutKind.Sequential)] +echo [DllImport^("user32.dll"^)] +echo public static extern bool GetCursorPos^(out POINT lpPoint^); +echo. +echo [DllImport^("user32.dll"^)] +echo public static extern uint SendInput^(uint nInputs, INPUT[] pInputs, int cbSize^); +echo. +echo [StructLayout^(LayoutKind.Sequential^)] echo public struct INPUT { echo public uint type; echo public MOUSEINPUT mi; echo } -echo [StructLayout(LayoutKind.Sequential)] +echo. +echo [StructLayout^(LayoutKind.Sequential^)] echo public struct MOUSEINPUT { echo public int dx; echo public int dy; @@ -87,20 +90,23 @@ echo public uint dwFlags; echo public uint time; echo public IntPtr dwExtraInfo; echo } +echo. echo public struct POINT { echo public int X; echo public int Y; echo } +echo. echo public const uint INPUT_MOUSE = 0; echo public const uint MOUSEEVENTF_MOVE = 0x0001; echo } echo "@ -echo Add-Type -TypeDefinition $code +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 (Hardware Simulation)" -ForegroundColor Green @@ -109,28 +115,34 @@ 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 while ($true^) { -echo if ($durationMinutes -gt 0^) { -echo $elapsed = ((Get-Date^) - $startTime^).TotalMinutes -echo if ($elapsed -ge $durationMinutes^) { +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 if ($currentPos.X -ne $lastPos.X -or $currentPos.Y -ne $lastPos.Y^) { +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 $moveX = $random.Next(-5, 6^) -echo $moveY = $random.Next(-5, 6^) +echo. +echo $moveX = $random.Next^(-5, 6^) +echo $moveY = $random.Next^(-5, 6^) +echo. echo $input = New-Object MouseMover+INPUT echo $input.type = [MouseMover]::INPUT_MOUSE echo $input.mi.dx = $moveX @@ -138,14 +150,19 @@ echo $input.mi.dy = $moveY echo $input.mi.dwFlags = [MouseMover]::MOUSEEVENTF_MOVE echo $input.mi.time = 0 echo $input.mi.dwExtraInfo = [IntPtr]::Zero -echo $inputs = @($input^) -echo [void][MouseMover]::SendInput(1, $inputs, [System.Runtime.InteropServices.Marshal]::SizeOf($input^)^) +echo. +echo $inputs = @^($input^) +echo [void][MouseMover]::SendInput^(1, $inputs, [System.Runtime.InteropServices.Marshal]::SizeOf^($input^)^) echo $moveCount++ +echo. echo $time = Get-Date -Format 'HH:mm:ss' echo Write-Host "[$time] Auto-moved mouse ($moveCount moves)" -ForegroundColor Green -echo [void][MouseMover]::GetCursorPos([ref]$lastPos^) +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