我在一个windows forms应用程序(C#)中工作,其中包含Windows media player来播放加密的视频,即出于安全目的,该应用程序应该解密视频文件,然后使用媒体播放器播放它
现在的问题是,如果任何人播放视频,然后运行任何屏幕录制应用程序,以便他可以轻松地获得视频
所以,问题是:当我的应用程序运行时,如何防止屏幕录制?
发布于 2015-04-16 10:44:54
简短的答案是:你不能。即使你以某种方式迫使Windows不允许任何应用程序录制屏幕,一个真正专心的用户可以简单地将一个录制设备对准他们的屏幕(而一个真正专心的用户会想出其他方法来绕过它)。如果你把它展示给你的用户,你只需要相信他们会公平对待它。
这里的另一部分是:你可能不必担心它。对于屏幕记录器来说,合理地捕获视频需要大量的处理和内存资源。一般的计算机很难同时进行解密、解码、播放和录制视频--即使普通用户想尝试一下,他们也会感到非常沮丧。
您可以尝试通过查找流行的屏幕录制产品并在该进程正在运行(或已安装?)时拒绝播放视频来使其变得更难。这将不是万无一失的,但它将是另一个威慑,例如。
Process [] skypes = Process.GetProcessesByName("skype.exe");
Process[] otherRecorders = Process.GetProcessesByName("recorder.exe");
if (skypes.Length > 0 || otherRecorders.Length > 0) // don't play当然,这仍然是复杂的,因为这些进程可能运行在不同的证书下,你的应用程序无法访问(需要你的应用程序以管理员身份运行?),并且一些进程会有奇怪的名称(例如Skype Windows Store应用程序)。
发布于 2021-10-26 04:11:22
我认为当应用程序工作时,你可以打破DLL并进行屏幕录制是有可能的
https://stackoverflow.com/questions/29664404
复制相似问题