我正在尝试用 C# 编写一个应用程序,我可以在其中检测另一个应用程序是否正在捕获 Windows 中的屏幕视频。我可以查看进程列表并检测特定进程是否正在运行,但效率不高,因为可以更改捕获应用程序的进程名称。任何人都可以告诉我是否有办法做到这一点?谢谢!
最佳答案
如果您要做的只是检测同一台计算机上的进程是否正在录制屏幕,您可能会找到一种方法来完成某些事情。有许多屏幕录制软件使用的某些 API,您可以使用 EasyHook 或类似的东西拦截它们,但您会错过其他工作方式不同的 API。
例如,UltraVNC 有一个 Mirror Video Driver,您可以安装它来通知您屏幕更新以及直接访问视频帧缓冲区,这非常适合屏幕录制或重播。您的代码将如何对此作出 react ?
更大的问题是简单地扫描本地机器不足以保护您的应用程序不被记录。您可以通过混合各种技术(例如硬件覆盖和 HDCP 输出)来使其变得更加困难。
当然,最大的问题是没有办法阻止有人将相机对准他们的显示器。
您最终将花费大量时间进行开发,而最终的结果是安全性并没有增加多少……并且给您的最终用户带来更多不便。决心打败它的人只需要对您的应用程序打一个小代码补丁或将手机摄像头对准正确的方向,就可以安全了。
我觉得很傻。
关于c# - 使用 .NET 在 Windows 中检测屏幕录制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23258340/