views:

831

answers:

5

Duplicate of: http://stackoverflow.com/questions/774925/detect-when-users-take-screenshots-of-my-program

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  A: 

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: http://stackoverflow.com/questions/69645/take-a-screenshot-via-a-python-script-linux/70237#70237 (Windows only)

Mark
+1  A: 

Find out how the pros do it:

http://browsershots.org/ https://sourceforge.net/projects/browsershots/ http://trac.browsershots.org/wiki

HM2K
ImageGrab.grab().http://trac.browsershots.org/browser/trunk/shotfactory/shotfactory04/gui/windows/__init__.py
Mark
i imagine they don't care about the application not noticing.
Claudiu
The trac links are broken.
Denilson Sá
+4  A: 

> 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.

can you post a more accurate link? Searching MSDN for "screenshot" leads to many results.
Claudiu
+3  A: 

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

User
hehe, yes, but this is also not programmatic, and it'd be hard to say take one every 100 ms or so.
Claudiu
@Claudiu: Not with some of the sports cameras out there... some of them boast upwards of 60 fps now...
BenAlabaster
A: 

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

Kalmi