【问题标题】:Prevent screen capturing softwares to capture an application screen防止屏幕捕获软件捕获应用程序屏幕
【发布时间】:2018-11-03 04:55:36
【问题描述】:

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

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

我猜 D3D9/DDraw 覆盖仅用于视频内容我可以将它用于 HTML 内容/在基于 c# 的 Windows 应用程序中吗?

【问题讨论】:

  • 不,你不能阻止人们阅读屏幕,我不知道的任何方式,但是你可以关闭网络
  • @TheGeneral 阅读??我猜你的意思是录制,但我不是要求阻止人们停止录制我只是要求阻止内容(HTML)像 HDCP 或 VLC 播放器的“directx 视频输出”一样被录制
  • 我认为没有 100% 可靠的方法可以做到这一点,我的意思是您可以通过多种不同的方式捕获(记录)屏幕。我唯一能想到的就是阻止脏小手指在你的电脑上安装软件,使用像样的病毒扫描程序,禁用网络
  • 如果我用智能手机录屏怎么办?您可能想考虑一个不那么面向软件的解决方案:有人在学生参加考试时监控他们吗?
  • @jonatan,如果考试是基于中心的,那么当然会有一名主管来监视他们,在这种情况下,系统也可以按照建议进行,因为我们也提供在线考试,所以在一些考试考生可以在任何地方(家庭/咖啡馆/大学校园等)进行考试(模拟)。对于家庭考试,我们需要这个解决方案

标签: c# c++ visual-c++ directx


【解决方案1】:

根据 MSDN,我通过使用 SetWindowDisplayAffinity 实现了这一目标

显示关联设置。此设置指定可以显示窗口内容的位置。将此值设置为 WDA_MONITOR 以仅在监视器上显示窗口的内容。将此值设置为 WDA_NONE 以删除仅监视器关联。

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

通过手机拍摄的图片:

但是,我愿意为此提供任何其他(更好的)答案。

【讨论】:

  • 查看this了解更多详细说明。
猜你喜欢
  • 2015-08-17
  • 1970-01-01
  • 2019-02-03
  • 1970-01-01
  • 1970-01-01
  • 2012-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多