Programmatically taking screenshots in windows wit

2019-04-17 16:08发布

问题:

This question already has an answer here:

  • Detect when users take screenshots of my program 10 answers

There are various ways to take screenshots of a running application in Windows. However, I hear that an application can be tailored such that it can notice when a screenshot is being taken of it, through some windows event handlers perhaps? Is there any way of taking a screenshot such that it is impossible for the application to notice? (Maybe even running the application inside a VM, and taking a screenshot from the host?) I'd prefer solutions in Python, but anything will do.

回答1:

> I hear that an application can be tailored such that it can notice when a screenshot is being taken of it

Complete nonsense. Don't repeat what kids say... Read MSDN about screenshots.



回答2:

There will certainly be no protection against a screenshot taken with a digital camera.



回答3:

Do you have a particular anti-screenshot program in mind? Ultimately, you're right, running the app in a VM will trump any 'protection' it has, but the method depends on which OS/VM you're using, and it's not worth the overhead until it's needed.

I'd just use this: Take a screenshot via a python script. [Linux] (Windows only)



回答4:

One could use Remote Desktop or the (low-level) VNC Mirror Driver and take the screenshot on an another computer.