diff --git a/README.md b/README.md index 59561b4..5809111 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,16 @@ python -m unittest discover -s tests -v Hits config sanitization, fetcher smoke, validator timeouts, and a live `get_direct_ip` check (skips if you’re offline). +### Shortcut missing? + +After a successful build, if **`Proxy God.lnk`** isn’t on the Desktop, run: + +```cmd +powershell -ExecutionPolicy Bypass -File scripts\create_desktop_shortcut.ps1 +``` + +(from the repo folder) + --- ## Build the binary @@ -72,7 +82,17 @@ Hits config sanitization, fetcher smoke, validator timeouts, and a live `get_dir build_exe.bat ``` -**Output:** `dist\ProxyChainManager.exe` — script also tries to drop a copy on your **Desktop**. +**What you get (no extra steps):** + +| Where | What | +|--------|------| +| `dist\ProxyChainManager.exe` | The built app | +| **Desktop → `Proxy God.lnk`** | **Double‑click this** — shortcut to the exe (created every build) | +| **Desktop → `ProxyChainManager.exe`** | Same app, direct file | + +First time: accept **UAC** if you want the firewall kill-switch. Then in the window press **▶ Start**. + +You do **not** need Python on the machine to run the `.exe` — only to **build** it. --- diff --git a/build_exe.bat b/build_exe.bat index 16a8e4d..8c93700 100644 --- a/build_exe.bat +++ b/build_exe.bat @@ -14,8 +14,9 @@ python -m PyInstaller --noconfirm --clean ^ run.py copy /Y "dist\ProxyChainManager.exe" "%USERPROFILE%\Desktop\ProxyChainManager.exe" >nul +powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0scripts\create_desktop_shortcut.ps1" echo. echo Built: dist\ProxyChainManager.exe -echo Copied to: %USERPROFILE%\Desktop\ProxyChainManager.exe +echo Desktop: ProxyChainManager.exe + shortcut "Proxy God.lnk" endlocal \ No newline at end of file diff --git a/scripts/create_desktop_shortcut.ps1 b/scripts/create_desktop_shortcut.ps1 new file mode 100644 index 0000000..f57b4fc --- /dev/null +++ b/scripts/create_desktop_shortcut.ps1 @@ -0,0 +1,23 @@ +# Creates "Proxy God.lnk" on the current user's Desktop. Run after build. +$ErrorActionPreference = "Stop" +$root = Split-Path -Parent (Split-Path -Parent $MyInvocation.MyCommand.Path) +$desk = [Environment]::GetFolderPath("Desktop") +$exeDesk = Join-Path $desk "ProxyChainManager.exe" +$exeDist = Join-Path $root "dist\ProxyChainManager.exe" +if (Test-Path $exeDesk) { + $target = (Resolve-Path $exeDesk).Path +} elseif (Test-Path $exeDist) { + $target = (Resolve-Path $exeDist).Path +} else { + Write-Warning "ProxyChainManager.exe not found on Desktop or in dist\" + exit 1 +} +$W = New-Object -ComObject WScript.Shell +$lnk = Join-Path $desk "Proxy God.lnk" +$S = $W.CreateShortcut($lnk) +$S.TargetPath = $target +$S.WorkingDirectory = $root +$S.Description = "Proxy God - proxy chain manager" +$S.IconLocation = "$target,0" +$S.Save() +Write-Host "OK: $lnk -> $target"