@echo off
title Mouse mover with double click - Ctrl+C to stop
set "PS1=%TEMP%\move-mouse-temp.ps1"
echo Creating PowerShell script...
> "%PS1%" echo Add-Type -AssemblyName System.Windows.Forms
>> "%PS1%" echo Add-Type -AssemblyName System.Drawing
>> "%PS1%" echo Add-Type @'
>> "%PS1%" echo using System;
>> "%PS1%" echo using System.Runtime.InteropServices;
>> "%PS1%" echo public class MouseClick {
>> "%PS1%" echo [DllImport("user32.dll")]
>> "%PS1%" echo public static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
>> "%PS1%" echo public const int LEFTDOWN = 0x02;
>> "%PS1%" echo public const int LEFTUP = 0x04;
>> "%PS1%" echo }
>> "%PS1%" echo '@
>> "%PS1%" echo.
>> "%PS1%" echo function DoubleLeftClick {
>> "%PS1%" echo [MouseClick]::mouse_event([MouseClick]::LEFTDOWN, 0, 0, 0, 0)
>> "%PS1%" echo [MouseClick]::mouse_event([MouseClick]::LEFTUP, 0, 0, 0, 0)
>> "%PS1%" echo Start-Sleep -Milliseconds 120
>> "%PS1%" echo [MouseClick]::mouse_event([MouseClick]::LEFTDOWN, 0, 0, 0, 0)
>> "%PS1%" echo [MouseClick]::mouse_event([MouseClick]::LEFTUP, 0, 0, 0, 0)
>> "%PS1%" echo }
>> "%PS1%" echo.
>> "%PS1%" echo Write-Host "Mouse mover with double click started. Press Ctrl+C to stop."
>> "%PS1%" echo.
>> "%PS1%" echo while ($true) {
>> "%PS1%" echo $p = [System.Windows.Forms.Cursor]::Position
>> "%PS1%" echo [System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(($p.X + 2), $p.Y)
>> "%PS1%" echo DoubleLeftClick
>> "%PS1%" echo Start-Sleep -Seconds 5
>> "%PS1%" echo.
>> "%PS1%" echo $p = [System.Windows.Forms.Cursor]::Position
>> "%PS1%" echo [System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point($p.X, ($p.Y - 2))
>> "%PS1%" echo DoubleLeftClick
>> "%PS1%" echo Start-Sleep -Seconds 5
>> "%PS1%" echo.
>> "%PS1%" echo $p = [System.Windows.Forms.Cursor]::Position
>> "%PS1%" echo [System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(($p.X - 2), $p.Y)
>> "%PS1%" echo DoubleLeftClick
>> "%PS1%" echo Start-Sleep -Seconds 5
>> "%PS1%" echo.
>> "%PS1%" echo $p = [System.Windows.Forms.Cursor]::Position
>> "%PS1%" echo [System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point($p.X, ($p.Y + 2))
>> "%PS1%" echo DoubleLeftClick
>> "%PS1%" echo Start-Sleep -Seconds 5
>> "%PS1%" echo }
echo Starting mouse mover...
echo Press Ctrl+C to stop.
echo.
powershell -NoProfile -ExecutionPolicy Bypass -File "%PS1%"
echo.
echo Script stopped or failed.
pause