- Windows 10 or later
- Visual Studio 2022 (or MinGW-w64 with C++20 support)
- CMake 3.21+
- Administrator privileges (required for registry modification and service control)
cmake -S . -B build -G "Ninja"
cmake --build build --config Releasecmake -S . -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config ReleaseMust be run as Administrator (right-click -> Run as administrator, or from an elevated command prompt).
.\build\veyoff-windows.exeOr with a custom blacklist path:
.\build\veyoff-windows.exe --blacklist C:\path\to\blacklist.txt- Reads
VncServerPortfrom Veyon's registry - Redirects it (11200 -> 11250) and restarts
VeyonService - Starts RFB proxy on the original port
- Creates the overlay window (hidden until master connects)
- Prints status to console
- Restores the original VNC port in registry
- Restarts
VeyonServiceto apply the restoration - Exits cleanly
- Start
veyoff-windows.exeas admin - Have Veyon running (master connects as usual)
- Press
Ctrl+Alt+F-- console printsFROZEN - Change something on screen -- master should still see the old frame
- If
Show Blue Outlineis enabled in the tray menu, a thin light blue inside outline appears while frozen - Press
Ctrl+Alt+Fagain -- console printsLIVE, master sees real desktop
- When a Veyon master connects, a thin red inside outline appears around the visible monitor bounds
- If the master app is connected but not actively viewing, the outline is amber
- The outline is invisible to Veyon's screen capture (
WDA_EXCLUDEFROMCAPTURE) - When the master disconnects, the outline disappears
- Uncheck
Show Amber OutlineorShow Red Outlinein the tray menu and verify each warning can be hidden independently
- Freeze the screen with
Ctrl+Alt+F - Verify the light blue inside outline appears
- Uncheck
Show Blue Outlinein the tray menu - Verify the freeze state remains active but the blue outline disappears
- Add a keyword to
config/blacklist.txt(e.g.,Firefox) - Open a window matching that keyword
- The master keeps seeing the previous clean pixels in that window's area, so the blacklisted app stays hidden instead of turning into a black box
- The blacklist file is hot-reloaded (edit while running)
| Problem | Cause | Fix |
|---|---|---|
| "Failed to write registry" | Not running as admin | Run elevated |
| "Failed to bind port" | Port already in use | Ensure old UltraVNC moved to new port; wait for service restart |
| "Failed to connect to upstream VNC" | UltraVNC not ready | Wait a few seconds, it should reconnect automatically |
| Master can't see student | Service restart failed | Manually net start VeyonService |
This repository is edited from Linux. The code is architecture-correct but must be built and tested on a real Windows machine with Veyon installed.