当前位置:  开发笔记 > 编程语言 > 正文

如何防止打印屏幕

如何解决《如何防止打印屏幕》经验,为你挑选了2个好方法。

我要求我正在处理的应用程序阻止用户轻松捕获屏幕内容.

我已经说过没有可行的方法可以完全防止这种情况发生,但我正在寻找方法来为这个过程引入一些障碍.

我正在使用C#/ .NET 2.0和WinForms



1> FryGuy..:

你不能.

您可以做的最好的事情是渲染到叠加层上的硬件加速设备,类似于视频播放器过去做的事情.基本上,您将整个窗口绘制为蓝色,并将图形渲染到视频卡上,并且内部视频卡将用图形替换蓝色.这样做的缺点是你必须放弃使用winforms控件,我不知道有什么方法可以轻松地使用.NET.我想如果您使用DirectShow.NET,他们的一个示例就是将您自己的图形放入流中.

即使在完成所有这些操作之后,仍然可以获得屏幕截图.只需用数码相机拍摄屏幕照片即可.



2> z -..:

从这里:

答:Windows使用注册的热键实现打印屏幕.Windows使用预定义的热键IDHOT_SNAPDESKTOP和IDHOT_SNAPWINDOW来处理打印屏幕.这些对应于捕获整个屏幕的Print Screen和仅捕获活动窗口的Alt + Print Screen.要禁用这些功能,您只需注册热键,这会导致Windows在用户按任意热键时向您的应用发送WM_HOTKEY消息.您的实现可以忽略该消息以绕过默认的屏幕捕获行为.一个好的地方就是在你的大型机类中.


我测试了slimKEYS,将PrintScreen映射到其他东西(打开记事本),它工作正常.这意味着使用PrintScreen vkey代码调用RegisterHotkey将为您工作.我还测试了Alt-PrintScreen.你必须注册两者,但它不会阻止其他应用程序捕获...
推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有