防止屏幕捕获软件捕获应用程序屏幕

Prevent screen capturing softwares to capture an application screen

我正在开发考试系统,作为系统的安全部分,我不希望任何人通过屏幕录制或远程使用如此多的免费应用程序进行桌面共享来泄露试卷。

首先我搜索了我可以阻止此类应用程序吗?但我不这么认为,因为 record/share 屏幕有很多方法。然后我开始了解 HDCP,但我想它只会应用于视频而不是 HTML(如果我错了请纠正我)。所以我想要像 HDCP 或 VLC 播放器的 "directx video output" 这样的东西,这样内容就不会被打印屏幕或其他屏幕捕获技术捕获。

我猜 D3D9/DDraw 覆盖仅用于视频内容 我可以将其用于 HTML content/in 基于 c# 的 windows 应用程序吗?

根据 MSDN

,我使用 SetWindowDisplayAffinity 实现了这一点

The display affinity setting. This setting specifies where the window's contents are can be displayed. Set this value to WDA_MONITOR to display the window's contents only on a monitor. Set this value to WDA_NONE to remove the monitor-only affinity.

因此将 WDA_MONITOR 设置为 WinForm 的句柄会使打印屏幕或桌面录制或桌面共享应用程序时变黑。

通过手机拍摄的图像:

但是,我愿意接受任何其他(更好的)答案。