可能重复:
How can I prevent users from taking screenshots of my application window?
到目前为止,我已经能够停止Prt Sc键按下并能够清除剪贴板,以便我的应用程序无法被屏幕抓取。
然而,作为测试,我尝试使用Corel PaintShop pro并且它有一个选项是导入屏幕截图,这与使用剪贴板的屏幕抓取非常不同,因为我怀疑我的应用程序没有阻止它。
所以我在这个网站上找到了以下代码:http://www.bitwisemag.com/copy/delphi/delphi1.html
这使用了一种不同的方法来抓取屏幕上的内容,我认为Corels方法与此类似。无论如何,这种屏幕抓取方法都可以用在我的应用程序上。
Greg Hewgill - 为此欢呼 - 我会读这篇文章
在Windows上获取屏幕截图是微不足道的,例如GetWindowDC(NULL)。我能想到的唯一方法与这个答案类似:stackoverflow.com/questions/455623 / ... - Nick
尼克看起来就像格雷格提到的那篇文章一样 - 不过为你的回应欢呼
为什么要这样麻烦?现在人们可以简单地用手机拍照并发送一下吗? - Marjan Venema
这可能是真的Marjan,但我试图阻止间谍软件程序点击日志记录,如果这使问题更清楚。
答案 0 :(得分:1)
我能想到的唯一方法是使用DirectX。当某些应用程序(如DVD播放器)使用DirectX写入屏幕时,Windows会看到视频显示的黑色(不是很黑,但很接近)矩形。使用PrintScr或GetWindowDC()的尝试返回该黑色矩形。像Snag-It这样的高端屏幕捕获应用程序可以使用DirectX正确渲染图像,但这对您来说将是一个99%的解决方案,正如其他人所说,用户总是可以拍照。