我正在使用Windows窗体应用程序(C#),它包含播放加密视频的Windows媒体播放器,即出于安全考虑,应用程序应解密视频文件,然后使用媒体播放器播放
现在的问题, 如果任何人播放视频,然后运行任何屏幕录制应用程序,以便他可以轻松获取视频
所以, 问题是: 我的应用程序运行时如何防止屏幕录制?
答案 0 :(得分:6)
简短的回答是:你做不到。即使,不知何故,你强迫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应用商店),这仍然很复杂应用程序,例如)。