在日常办公或者使用电脑时,大家有没有遇到过这样的尴尬:某些公司自带的监控软件会不定时截屏上传,或者在进行远程协助、录屏分享时,不想让某些私人聊天窗口、证券交易软件或者是正在“摸鱼”的游戏界面被拍进去?

CaptureGuard 界面演示

CaptureGuard 能够让特定窗口在截图中隐形,但肉眼依然可见

今天发现了一个非常有意思的开源小玩意儿——CaptureGuard。它的核心功能一句话就能概括:你肉眼看得见的窗口,在截图里却是一片透明。

🛠️ 它有什么用?

简单来说,这就是一个防截屏、防录屏的小工具。

  • 应对监控:如果你的办公环境有不定时截屏审计,用这个工具选中你的微信、QQ 或其他不想被看到的软件,监控截图里它们会消失,只剩下其他正常的窗口。
  • 远程协助更放心:用 ToDesk、UU 远程等工具修电脑时,不想让对方看到你桌面的某些内容?开启防护后,远控端看到的屏幕里,这些窗口直接隐身。
  • 隐私保护:在进行网络直播或录屏教程时,可以方便地屏蔽掉不需要展示的系统托盘或后台工具窗口。

🚀 怎么用?门槛极低

作者很贴心地提供了编译好的程序,不需要你自己折腾代码。

  1. 去项目仓库的 Release 页面下载 .exe 文件。
  2. 直接双击打开(目前仅支持 Windows 系统)。
  3. 软件会列出当前打开的所有窗口,找到你想隐藏的那个,点击“防护”或“启用”。
  4. 搞定!现在你试着用截图工具截个屏,或者打开录屏软件看看,那个窗口是不是已经凭空消失了?

如果想恢复,只需要在软件里再次点击“解除防护”即可,整个过程非常流畅。

🔍 实现原理:黑魔法还是正规军?

很多朋友可能会好奇,要做到“人眼可见但截图不可见”,是不是需要很底层甚至有点流氓的技术?

其实 CaptureGuard 走的是“正规军”路线,利用的是 Windows 系统提供的一个原生 API:SetWindowDisplayAffinity

  • 原理分析:这个 API 本来是设计用于防止安全敏感窗口(如银行输入密码时的窗口)被非安全层级的屏幕捕获工具截取的。CaptureGuard 利用了这个机制,通过 DLL 注入的方式,将这个属性应用到任何你选中的第三方窗口上。
  • 技术栈:项目本身是使用 Rust 语言编写的。Rust 的内存安全特性在这里很有用,毕竟涉及到 DLL 注入这种底层操作,稳定性至关重要。这也算是一个不错的 Rust 在 Windows 桌面工具方向上的实战案例。
  • 局限性:正因为依赖 Windows 原生 API,目前这款工具只能运行在 Windows 平台上,Mac 和 Linux 用户暂时无缘。

💡 总结

CaptureGuard 代码实现原理

基于 Rust 和 Windows API 的实现方式

CaptureGuard 是一个非常典型的“小而美”的工具。它体积不大,逻辑简单,但解决了一个非常具体的痛点。对于需要兼顾合规操作与个人隐私空间的打工人来说,这绝对是个值得放进工具箱里的“防身利器”。

至于代码嘛,既然是开源项目,对 Rust 或 Windows 内部机制感兴趣的朋友,不妨去翻翻源码,看看作者是怎么优雅地实现这个功能的。

如果你平时也有类似的截屏烦恼,不妨试试这个小工具,体验一下“掩耳盗铃”般的快乐(当然是防监控版的)!

标签: none

评论已关闭