Click here to Skip to main content
14,982,400 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
How i can disable print screen in mDI parent or mDI child
Tomas Takac 18-Nov-14 8:18am
What did you try so far? Can you post some code?
Mohammad Hamza Khan 28-Nov-14 3:35am
I m applying keydown event but it is not working

Hi Mohammad,

First I would question this requirement - It doesn't make sense at all, cause what is on a screen can be seen - by human eyes, a camara (phone?), or by hacking (radio signals from graphics card and what not..). So if someone thinks this will "enhance" security of your app he is...

But if you think this is a good idea anyway you could:

* Disable the print Screen button (and Alt+ Print) with a Keyboard-hook.
[If your program does this to my system with a global hook I'd uninstall your app in the blink of an eye]

* Intercept the default behaviour that the image is copied to the clipboard - just monitor the Clipboard and overwrite if you detect the image. Won't help if a program is used to capture the screen that writes directly to a file/stream.

Disable PrintScreen by System policy - but this will effect all programms on that system, and you can't set the needed registry key with your program - you would have to restart the system after that.

So I'd recommend to be a "good programmer", implement needed security on the target system and in the environment. Any hack you can come up with can be circumvented - and to stop the noobs just remove the "print" key from the keyboard ;-)

Just my 2c

Kind regards Johannes
Simple. You don't, for two reasons.

1) You can't prevent a single Window from being captured by all methods of screen capture software.

2) It's a complete waste of time. What's stopping a user from pulling out their cell phone and taking a picture of the screen?

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900