我正在写一个Windows应用程序。当屏幕截图被截取时,我如何判断?我读过关于如何检测热键被按下的文章,但我更担心的是每隔100毫秒左右就有另一个程序截图的情况。也就是说,当有人创建了另一个程序(比如使用ImageGrab的python程序,就像在另一篇文章中提到的那样)时,我会不断地截取我的应用程序的屏幕截图,并使用它们来读取其中的信息。
我不太关心阻止截图的发生--一旦注意到这一行为,我就可以禁止用户使用。
这个是可能的吗?当任何应用程序截屏时,是否会发送windows消息,比如WM_HOTKEY?或者windows只是使用最新的paint事件的最新信息,并将其直接返回给其他程序,而我的应用程序根本无法注意到这些信息?
发布于 2009-04-21 22:31:14
无论你做什么,人们都会找到绕过它的方法。假设存在这样一种方法,您可以可靠地检测到另一个程序截取您的应用程序的屏幕截图。为了解决这个问题,我可以安装VirtualBox,在VM中运行您的应用程序,然后让一个程序截取VirtualBox的屏幕截图(然后包含您的应用程序)。你的应用程序绝对没有办法知道它被拍照了。
发布于 2009-04-21 22:29:15
如果我使用摄像机呢?如果我捕捉到计算机和显示器之间的视频,该怎么办?
我会惊讶地发现有任何实际的方法来做到这一点。
发布于 2009-04-21 22:42:03
这是行不通的。不仅如此,试图提供这种级别的安全性还会给99%的合法用户带来不便。
你最好从试图识别你的信息的不想要的用途/副本的角度来处理这个问题,并与使用这些信息的人/公司打交道。
版权法适用于这种方法,但我知道在某些情况下这种方法是不可用的。
https://stackoverflow.com/questions/774925
复制相似问题