Lightweight Windows utility that keeps your RDP session alive by simulating minimal user activity when the system is idle.
When you stay connected via Remote Desktop and your local machine sits idle, the remote session can lock, the connection can drop, or your corporate VPN can disconnect. Most "mouse jiggler" tools fix this by aggressively moving the cursor (interfering with your work the second you sit back down), spawning a cmd.exe window for pings (an annoying flashing console), or relying on third-party drivers.
RDPGhost sticks to documented Win32 APIs — SendInput, IcmpSendEcho from iphlpapi.dll, SetThreadExecutionState — and stays out of the way. No subprocess, no driver, no console flash.
When the system has been idle for the configured timeout, RDPGhost fires any combination of these (each is an independent toggle):
- Mouse nudge — moves the cursor by a few random pixels via
SendInputwith absolute coordinates. Multi-monitor safe (uses virtual-desktop bounds). - Scroll Lock pulse — presses Scroll Lock twice (toggle on, then off), so no character is emitted and the resulting key state matches the original.
- ICMP ping — single ping to a configurable host via
IcmpSendEchoin a background thread. Nocmd.exe, no console window. - Prevent sleep — sets
ES_SYSTEM_REQUIRED | ES_CONTINUOUSso Windows does not enter standby on its own.
The moment you touch the mouse or keyboard, the idle counter resets and simulation stops until the next full idle period.
The utility lives in the system tray. In Ghost mode (Stealth on) the window, its taskbar entry, and the tray icon itself are all hidden — only the background process remains. A configurable global hotkey (default Ctrl+Alt+G) brings it back.
- Download
RDPGhost.exefrom the latest release. - Run it — no install, no admin rights required.
- Tick the actions you want, set the idle timeout (10–3600 sec), set the ping host (default
8.8.8.8). - Click Minimize to Tray — the form and its taskbar entry vanish; only the tray icon stays. Optionally enable Stealth + Autostart for a fully background experience.
Settings persist to RDPGhost.ini next to the .exe. Autostart writes a single value under HKCU\Software\Microsoft\Windows\CurrentVersion\Run (no service, no admin).
v1.0.0 — public release. UI / INI / registry / CLI contracts are frozen. Anti-idle behaviour validated end-to-end on a real RDP session (3h+ uptime in a scenario where unprotected sessions drop within ~10 min). Dual-toolchain (Delphi VCL + Lazarus/FPC LCL) is maintained — both builds are drift-checked by CI on every push.
Future work, if any, follows SemVer — PATCH for bug fixes, MINOR for new optional features. The contracts above will not break in any 1.x release.
RDPGhost is free and ad-free. If it saves you a few RDP drops, consider supporting continued development:
- Boosty — boosty.to/sgonnovdm/donate (RUB / cards / СБП)
- TON —
UQA-0I3SN2vw8F2ZzEoOTXT36-ToF0mu4Yp4_6pVmsR_dI0S
Or use the in-app About screen — one-click links and copy-to-clipboard for the TON address.
Bug reports, feature requests, and PRs welcome. See CONTRIBUTING.md for build prerequisites (dual-toolchain — Lazarus or Delphi works) and PR-flow. Releases follow the runbook in docs/RELEASING.md.
See Changelog.md for release history.
MIT © 2026 Sgonnov D.A. — see LICENSE.
