{"id":28343475,"url":"https://github.com/aamitn/winhider","last_synced_at":"2026-01-24T21:34:40.620Z","repository":{"id":295027624,"uuid":"988821906","full_name":"aamitn/winhider","owner":"aamitn","description":"winhider  - Hide windows from screensharing and also from taskbar / taskswitcher (Alt-Tab) while still being able to use them normally","archived":false,"fork":false,"pushed_at":"2025-08-15T17:33:57.000Z","size":67115,"stargazers_count":36,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-15T18:41:58.937Z","etag":null,"topics":["winapi"],"latest_commit_sha":null,"homepage":"http://winhider.bitmutex.com/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aamitn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-23T06:05:29.000Z","updated_at":"2025-08-15T17:34:01.000Z","dependencies_parsed_at":"2025-08-15T18:20:38.680Z","dependency_job_id":"34d8b35f-5fb5-44b4-a2d8-56269fca1274","html_url":"https://github.com/aamitn/winhider","commit_stats":null,"previous_names":["aamitn/winhider"],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/aamitn/winhider","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aamitn%2Fwinhider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aamitn%2Fwinhider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aamitn%2Fwinhider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aamitn%2Fwinhider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aamitn","download_url":"https://codeload.github.com/aamitn/winhider/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aamitn%2Fwinhider/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28737384,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T21:19:41.845Z","status":"ssl_error","status_checked_at":"2026-01-24T21:13:38.675Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["winapi"],"created_at":"2025-05-27T07:17:37.683Z","updated_at":"2026-01-24T21:34:40.610Z","avatar_url":"https://github.com/aamitn.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WinHider\r\n\u003cimg src=\".\\Misc\\whicon.png\" alt=\"WinHider Logo\" width=\"250\" align=\"left\"/\u003e\r\n\r\n[![Build App](https://github.com/aamitn/winhider/actions/workflows/build.yml/badge.svg)](https://github.com/aamitn/winhider/actions/workflows/build.yml)\r\n[![License](https://img.shields.io/github/license/aamitn/winhider)](./LICENSE)\r\n[![Version](https://img.shields.io/github/v/release/aamitn/winhider)](https://github.com/aamitn/Winhider/releases/)\r\n\r\n\u003ca href=\"https://apps.microsoft.com/detail/XP99GV9280HRFP?referrer=appbadge\u0026mode=direct\"\u003e\r\n\t\u003cimg src=\"https://get.microsoft.com/images/en-us%20dark.svg\" width=\"200\"/\u003e\r\n\u003c/a\u003e\r\n\r\n| **Release Type**    | **Link**                                                                                                                                                                                            |\r\n|---------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\r\n| **Winget**          | **`winget install winhider`**                                                                                                                                                                       |\r\n| **Github Release**  | [Installer Link](https://github.com/aamitn/winhider/releases/download/v0.8.15/WinhiderInstaller.exe) • [Zip Bundle Link](https://github.com/aamitn/winhider/releases/download/v0.8.15/Winhider.zip) |\r\n| **Microsoft Store** | [Store Link](https://aka.ms/AAxky1o)                                                   |\r\n\r\n\r\n\r\n**Inno Installer Silet Switches** : `/VERYSILENT` , `/CURRENTUSER`  [Required for winget/ms store publishing]\r\n- Example Silent Install Command:\r\n\t```sh\r\n\tWinhiderInstaller.exe /VERYSILENT /CURRENTUSER\r\n\t```\r\n\r\n**`WinHider`** (short for _`Window Hider`_) is Rust based WinAPI application that allows you to hide user defined windows from screensharing (zoom, ms-teams, gmeet etc.) and also from taskbar / taskswitcher (Alt-Tab).\r\n\r\nDocs \u0026 landing page Website: [`site`](./site)\r\n\r\n\r\n## App Screenshots\r\n\u003cp float=\"left\"\u003e\r\n  \u003cimg src=\"./Misc/ss1.png\" width=\"400\" alt=\"Winhider GUI\" /\u003e\r\n  \u003cimg src=\"./Misc/ss2.png\" width=\"250\" alt=\"Winhider CLI\" /\u003e\r\n\u003c/p\u003e\r\n\r\n## What does it do exactly?\r\n\r\nIt is an aplication to hide/unhide app windows from screenshare and taskbar/taskswitcher while still be able to use and interact with the applciation in your system. \r\n\r\nBelow is an explainer video:\r\n\r\n![explainer](./Misc/winhider_illustration.gif)\r\n\r\n\r\n\u003eThe above GIF illustrates how I used WinHider to hide the Notepad window from my screenshare and taskbar/taskswitcher while still being able to see it on my end. This is useful when you want to share your screen but don't want the other participants to see the Screensharing window itself.\r\n\r\n### What goes under the hood? \r\n\r\nThe tool performs dll injection with dlls containg targets for :\r\n- [SetWindowDisplayAffinity](https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowdisplayaffinity) to `WDA_EXCLUDEFROMCAPTURE`. (For hiding from screenshare)\r\n- Modifying the window’s [extended styles](https://learn.microsoft.com/en-us/windows/win32/winmsg/extended-window-styles) (For hiding from taskbar \u0026 taskswitcher) : \r\n  1. It removes the [`WS_EX_APPWINDOW`](https://learn.microsoft.com/en-us/previous-versions/dd425531(v=vs.100)) style, which normally causes a window to appear in the taskbar and Alt-Tab.\r\n  2. It adds the [`WS_EX_TOOLWINDOW`](https://learn.microsoft.com/en-us/previous-versions/dd410943(v%3Dvs.100)) style, which hides the window from the taskbar and Alt-Tab.\r\n\r\n## 📦 Directory Structure\r\n\r\n- `app` – Core App + Integrated Injector\r\n- `payload` –  DLL Creation\r\n- `Misc` – Miscellaneous files (icons, images, etc.)\r\n- `build.ps1` – PowerShell script to build the project with MSBUILD`\r\n- `sign.cmd` – Command-line script to sign the release binaries and installer\r\n\r\n## How do I install it?\r\n\r\nTo use this application, you can either use the installer or the portable version.\r\n\r\n### Use the binary installer (recommended)\r\n\r\n - Download and run [`WinhiderInstaller.exe`](https://github.com/aamitn/Winhider/releases/download/latest/WinhiderInstaller.exe).\r\n - Once the installation is complete, you will be able to run `Winhider` from the Start Menu.\r\n\r\n### Download the portable zip with prebuilt binaries\r\n\r\n- Download and extract the generated zip bundle named [`Winhider.zip`](https://github.com/aamitn/Winhider/releases/download/latest/Winhider.zip).\r\n- Run `Winhider.exe`.\r\n\r\n\r\n\r\n### Build The Project \r\n\r\n- Download and extract the source from [here](https://github.com/aamitn/winhider).\r\n  ```bash\r\n  git clone https://github.com/aamitn/winhider\r\n  cd Winhider\r\n  ```\r\n- Build using CLI , Open Admin command Prompt / Terminal \r\n```bash\r\ncargo build --release --target x86_64-pc-windows-msvc\r\ncd target\\x86_64-pc-windows-msvc\\release\r\ncargo run \r\n```\r\n\u003e after build stage, if`cargo run` gives, permission error, run the CLI as admin and rerun command.\r\n\r\n- Alternatively you can run `build.ps1 --run` in powershell to buiild from CLI without IDE\r\n\u003e To build without IDE form CLI using powershell script,navigate to `target\\x86_64-pc-windows-msvc\\release` and run  winhider.exe\r\n\r\n## Update `winget` Package Manifest\r\n\r\n### Update Manifest\r\n```bash\r\nwingetcreate update Bitmutex.WinHider --version x.x.x --urls \"https://github.com/aamitn/winhider/releases/download/vx.x.x/WinhiderInstaller.exe\" --installer-arch x64\r\n\r\nOR\r\n\r\nwingetcreate update Bitmutex.WinHider --version x.x.x --urls \"https://github.com/aamitn/winhider/releases/download/vx.x.x/WinhiderInstaller.exe|x64\"\r\n\r\nOR\r\n\r\nwingetcreate update Bitmutex.WinHider --version 1.0.6 --interactive\r\n```\r\n### Submit Manifest\r\n```bash\r\nwingetcreate submit \".\\manifests\\b\\Bitmutex\\Winhider\\x.x.x\" --token \u003cGITHUB_TOKEN\u003e\r\n```\r\n\r\n## Sign Release Binaries\r\n- Use `sign.cmd` to sign the release binaries and installer. This is optional but recommended for distribution. This script signs `.exe` and `.dll` files using `signtool.exe` and a `.pfx` certificate.\r\n- Our provided signing certificate is in `.pfx` format is at [`./Misc/WinHider.pfx`](./Misc/BitmutexCert.pfx).\r\n- 🔐 **Default Behavior:** Running without arguments signs all `.exe` and `.dll` files in `Build\\bin\\Release` using the default password\r\n- ⚙️ Arguments\r\n\r\n\t| Argument                     | Description                                                                      |\r\n\t|-----------------------------|----------------------------------------------------------------------------------|\r\n\t| `--pass \"\u003cpassword\u003e\"`\u003cbr\u003e`-p \"\u003cpassword\u003e\"` | Use custom password for signing (quotes required)              |\r\n\t| `--signinstaller`\u003cbr\u003e`-i`    | Sign only installer `.exe` files in `Misc\\output`                               |\r\n\t| `--signall`\u003cbr\u003e`-a`          | Sign both main binaries and installer files                                     |\r\n\t| `--help`\u003cbr\u003e`-h`             | Show help message                                                               |\r\n\t```bash\r\n\tExample : `sign.cmd -a -p \"mypass\"`\r\n\t```\r\n- 🔗 **Timestamp Server:**  `http://timestamp.comodoca.com/authenticode` (Uses Comodo’s timestamp server)\r\n\u003e ⚠️ **Important:** Password must be enclosed in quotes. Avoid hardcoding passwords—pass them securely using environment variables or CI/CD secrets.\r\n\r\n## Landing Page and Docs Site\r\n\r\nAstro and Astro-Starlight website located at \u003ca href=\"./site/\"\u003e**`./site`**\u003c/a\u003e directory\r\n\r\n## ❓ FAQs\r\n\r\n### **⚠️Getting Error for missing `MSVCP140.dll` , `VCRUNTIME140.dll` or `VCRUNTIME140_1.dll` , what to do?**\r\n\r\nThese errors mean the **Microsoft Visual C++ Redistributable** is not installed. Please Download and install the redistributables for your system , restart your PC and try again:\r\n- [Visual C++ Redistributable x86 (32-bit)](https://aka.ms/vs/17/release/vc_redist.x86.exe)  \r\n- [Visual C++ Redistributable x64 (64-bit)](https://aka.ms/vs/17/release/vc_redist.x64.exe)\r\n\r\n\r\n### **💻 What OSes are supported?**\r\n\r\nMicrosoft Windows 10 v2004 or above. On previous versions of windows, a black screen shows up instead of hiding the window.\r\n\r\n### **🕝Do future instances of the application get automatically hidden?**\r\n\r\nNo\r\n\r\n### **👀 Is it possible to see a preview of the screen on my side?**\r\n- You can simply use [`OBS Studio`](obsproject.com/download) with Windowed Projectors.\r\n- Open OBS and do first-time setup.\r\n- Then Right-Click under Sources-\u003e Add-\u003e Display Capture-\u003eOK-\u003e Select Monitor under `Display` Dropdown-\u003e OK. Now you will see infinity mirror if you have single diplay.\r\n- Right click on the newly creted display under sources -\u003e Click Windowed Projector.\r\n- Minimize OBS and check for window hide status in projector window\r\n- Multi-Monitor Systems will not require additional projector\r\n\u003cdetails\u003e\r\n\u003csummary\u003eExpand for Screenshot\u003c/summary\u003e\r\n\r\n![Windowed Projector](./Misc/win-projector.png)\r\n\r\n_Tip: you can hide the Projector window from view too._\r\n\r\n\u003c/details\u003e\r\n\r\n### **▶️ Could I automatically hide windows using a hotkey?**\r\n\r\nYes! From GUI, just click the `Activate Hotkeys` to activate hotkeys, activated by default.\r\n\t\u003e :\r\n\t**Hotkey Legend**  \r\n\t`Ctrl+S` -\u003e Toggle Hide/Unhide from Screenshare   \r\n\t`Ctrl+T` -\u003e Toggle Hide/Unhide from Screenshare   \r\n\t \u003e\r\n\r\n\r\n## Contribution Guideline\r\n\r\nFeel free to open an [`Issue`](https://github.com/aamitn/winhider/issues/new) / [`PR`](https://github.com/aamitn/winhider/compare) if you find a bug or would like to contribute!\r\n\r\n\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faamitn%2Fwinhider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faamitn%2Fwinhider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faamitn%2Fwinhider/lists"}