创建一个不出现在打印屏幕中的窗口

Posted

技术标签:

【中文标题】创建一个不出现在打印屏幕中的窗口【英文标题】:Creating a window that doesnt appear in print screen 【发布时间】:2017-07-07 10:01:58 【问题描述】:

在windows上按打印屏幕时,鼠标光标不会出现在屏幕截图中。想知道它是如何创建的,具有什么属性。我无法使用 SPY++ 和其他工具找到鼠标光标的 Hwnd。

我想。截图。

【问题讨论】:

【参考方案1】:

光标不会出现,因为它是旧硬件功能,您的计算机可能会因为光标仍然移动而冻结。

至于阻止屏幕截图,如果您创建一个直接 x 交换链,则您有用于此目的的保护标志。我不知道常规的hwnd tho。

【讨论】:

【参考方案2】:

很久以前,鼠标光标是硬件的一个特殊部分,它创建了一个覆盖层,实际上并没有像屏幕的其余部分那样渲染到相同的视频内存中。即使在今天,它也不是一个窗口(在 user32 意义上的窗口)——它没有 HWND。它可能仍然足够特殊以至于它不是渲染的一部分,或者可能是 Print Screen 功能在抓取屏幕截图时可能会暂时隐藏光标。

我认为没有一种简单的通用方法可以确保您的窗口不会被屏幕截图捕获。或许,如果您的窗口属于“high-integrity”进程,则它可能会从常规或低完整性进程捕获的屏幕截图中消失。但我从未尝试过。

【讨论】:

以上是关于创建一个不出现在打印屏幕中的窗口的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 上打印 - 多个子窗口

解决使用复制浏览器的屏幕截图出现黑色窗口的问题

vs2017为啥不出现”应用程序设置”窗口

安装打印机时出现这个窗口怎么办

OpenGL - 在 3D 世界的屏幕上固定位置打印 2D 文本

在打印窗口中隐藏浮动面板[重复]