Hide any window from screen capture on Windows.
demo.mp4
This lightweight utility allows you to easily hide any window on your system from screenshots, screen recording, screen sharing, malware, anti-cheat, and other tools. Here are some examples:
- OBS Studio
- Snipping Tool (Win+Shift+S)
- Microsoft Teams
- Discord
- Zoom
- …
In case you're wondering, the name "Evanesco" means "disappear" in Latin. I wanted to use a more descriptive name, but I just couldn't resist using the chant of the invisibility spell from Baldur's Gate 3. While the third-person, singular, present, imperative form "Evanesce" is technically more grammatically correct, I'm leaving it as "Evanesco" as it is more interesting to align with the chant of the spell.
Tip
- You may want to run Evanesco with administrator privileges so you can hide other windows that are running with administrator privileges.
- You can easily test if a target window has been hidden by previewing a screenshot with Windows' built-in Snipping Tool (
Ctrl+Shift+S). - You can hide
explorer.exeto hide the taskbar and the desktop. - You can use
Ctrl+Ato select all windows or processes in the tables.
- Download and install Evanesco. You can either:
- use the installer (named
EvanescoUserSetup-*-x64.exe) to install Evanesco onto your system, or - use the portable version (named
Evanesco-*-x64.zip) to run Evanesco without installation.
- use the installer (named
- Double-click the
Evanesco.exefile or the desktop icon to launch the GUI application. - Click to select the windows or processes owning the windows you want to hide. You can press and hold
Shiftto select multiple continuous processes or press and holdCtrlto select multiple individual processes. - Press the
Hidebutton to hide the windows or theUnhidebutton to unhide the windows.
You can also use Evanesco from the command line:
Hide windows from screen capture and recording.
Usage:
evanesco [hide|unhide] --process <processId>
evanesco [hide|unhide] --window <windowHandle>
evanesco (Without arguments to launch the GUI)
Examples:
evanesco hide --process 1234
evanesco unhide --window 12AB34TL;DR: DLL injection + SetWindowDisplayAffinity.
Windows provides the SetWindowDisplayAffinity function to allow applications to specify where the content of their windows can be displayed. Calling this function with the handle of the window we want to hide from screen captures and the display affinity set to WDA_EXCLUDEFROMCAPTURE will cause the window to be transparent and invisible to screen capture software.
However, there is a security restriction where the SetWindowDisplayAffinity function can only be called by the process that owns the window, which means we cannot simply write an application that enumerates all windows and calls SetWindowDisplayAffinity to hide the windows. The call originate from the process that owns those windows.
Evanesco bypasses this restriction by injecting a DLL into the target process that owns the window we want to hide. The injected DLL then calls the SetWindowDisplayAffinity function from within that process. While the first version of Evanesco (1.0.0) used shellcode injection, later versions switched to DLL injection to provide additional functionalities.
This project is licensed under GNU GPL version 3.
Copyright (C) 2025 K4YT3X.