Board index » delphi » Preventing 'Print Screen'

Preventing 'Print Screen'

Howdy,

I need to prevent users of my app from doing 'Print Screens' of the
images that my app displays.

I've succeeded in capturing 'Print-Screen' and 'Alt-Print-Screen' and
defeating them by clearing the clipboard and minimizing when the app
loses focus.

But, 3rd party Screen Capture utilities, which use user defined hot-keys
to capture the current app's screen, I can't seem to prevent them from
working.

Any ideas ?
Later,
Paul

 

Re:Preventing 'Print Screen'


It's not possible to prevent it.

Paul Peterson <pa...@futureone.com> schrieb in im Newsbeitrag:
3A1C0DA5.AD8F1...@futureone.com...

Quote
> Howdy,

> I need to prevent users of my app from doing 'Print Screens' of the
> images that my app displays.

> I've succeeded in capturing 'Print-Screen' and 'Alt-Print-Screen' and
> defeating them by clearing the clipboard and minimizing when the app
> loses focus.

> But, 3rd party Screen Capture utilities, which use user defined hot-keys
> to capture the current app's screen, I can't seem to prevent them from
> working.

> Any ideas ?

> Later,
> Paul

Re:Preventing 'Print Screen'


Paul Peterson schrieb:

Quote
> I need to prevent users of my app from doing 'Print Screens' of the
> images that my app displays.

> I've succeeded in capturing 'Print-Screen' and 'Alt-Print-Screen' and
> defeating them by clearing the clipboard and minimizing when the app
> loses focus.

> But, 3rd party Screen Capture utilities, which use user defined hot-keys
> to capture the current app's screen, I can't seem to prevent them from
> working.

> Any ideas ?

Don't display the whole image at one. Display parts
"flickering". With GUI components you should be able to get
about 20 Frames/s.

--
                                                 Andreas

Want to help developing a free online RPG?
join http://www.egroups.com/group/LACOR

Re:Preventing 'Print Screen'


Put them into tiny scrollboxes, then
they have to pan to see the whole.

Even if a print screen can be prevented,
did you hear about those digital cameras ?

Rene
--
Ing.Buero R.Tschaggelar - http://www.ibrtses.com

Re:Preventing 'Print Screen'


Tom,

How does a 3rd party screen capture get a chance to 'see' a hotkey
BEFORE my app (which has focus) get to see the hotkey ?

Later,
Paul

Quote
tom wrote:

> It's not possible to prevent it.

> Paul Peterson <pa...@futureone.com> schrieb in im Newsbeitrag:
> 3A1C0DA5.AD8F1...@futureone.com...
> > Howdy,

> > I need to prevent users of my app from doing 'Print Screens' of the
> > images that my app displays.

> > I've succeeded in capturing 'Print-Screen' and 'Alt-Print-Screen' and
> > defeating them by clearing the clipboard and minimizing when the app
> > loses focus.

> > But, 3rd party Screen Capture utilities, which use user defined hot-keys
> > to capture the current app's screen, I can't seem to prevent them from
> > working.

> > Any ideas ?

> > Later,
> > Paul

Re:Preventing 'Print Screen'


Andreas,

Ouch ... that sounds like a pain. Hopefully there is a better way.

Later,
Paul

Quote
Andreas Koch wrote:
> Don't display the whole image at one. Display parts
> "flickering". With GUI components you should be able to get
> about 20 Frames/s.

> --
>                                                  Andreas

> Want to help developing a free online RPG?
> join http://www.egroups.com/group/LACOR

Re:Preventing 'Print Screen'


Rene,

Tiny scrollboxes aren't an option. I don't worry tooooo much about
digital cameras ... we just need to show we are preventing
'common/casual' distribution of the images. It may be enough to say you
can't copy without a 3rd party screen capture utility (I can prevent use
of the Print Screen key) ... but I'd sure like to prevent the 3rd party
utilities also.

Later,
Paul

BTW, does anyone know if screen capture utilities work if you are using
Direct Draw and writting directly to graphic card memory ???

Quote
Rene Tschaggelar wrote:

> Put them into tiny scrollboxes, then
> they have to pan to see the whole.

> Even if a print screen can be prevented,
> did you hear about those digital cameras ?

> Rene
> --
> Ing.Buero R.Tschaggelar - http://www.ibrtses.com

Re:Preventing 'Print Screen'


Paul Peterson schrieb:

Quote

> Tom,

> How does a 3rd party screen capture get a chance to 'see' a hotkey
> BEFORE my app (which has focus) get to see the hotkey ?

Hmm... system hooks?

--
                                                 Andreas

Want to help developing a free online RPG?
join http://www.egroups.com/group/LACOR

Re:Preventing 'Print Screen'


Quote
Paul Peterson wrote:

> BTW, does anyone know if screen capture utilities work if you are using
> Direct Draw and writting directly to graphic card memory ???

IIRC SnagIt and HyperSnap can scroll the window contents and at least the
latter is able to capture direct draw surfaces.
You can use a system hook to capture any keypress. This is probably how
the capture tools do it. Two problems with that:

- you don't know which key is used as a capture hotkey. Of course you could
  check if your app is the foreground app and let only alt+tab and similar
  keys through if so.
- The hooks are chained up and if the capture app registers its hook after
  yours it will see the hotkey message first (and pass it on to your hook
  but it is already too late).

If we knew how the capture tools do their work maybe... for instance if they
fake a WM_PAINT message and provide their own HDC... you may be able to find
that out. But if they somehow access the video frame buffer directly there
is no such way.

What about this: Assume that there is only a handful of commonly used capture
tools. Find out which tools these are. If one of these apps runs at the same
time as your app shut your app down. This should stop most people. Of course
you need to check this frequently. Or maybe there is a possibility to be
informed by windows if another app starts up... don't know about that (would
be interesting though!).

Keep in mind that all this will not help against any serious hacking of your
application.

Regards,
WL

Re:Preventing 'Print Screen'


Quote
In article <3A1C0DA5.AD8F1...@futureone.com>, Paul Peterson wrote:
> I need to prevent users of my app from doing 'Print Screens' of the
> images that my app displays.

That is a fools errant, don't waste any time on it. Even if you could
blcok any way to copy the screen contents you cannot block anybody just
taking a snapshot of the monitor using a digital or analog camera. So it's
an utter waste of time.

Peter Below (TeamB)  100113.1...@compuserve.com)
No e-mail responses, please, unless explicitly requested!

Re:Preventing 'Print Screen'


Peter,

Well it is partially a 'contractual' issue, to stop common and casual
attempts to transfer the image. Image quality DOES matter (let's just
say they are x-rays), so I'm not too worried about people using other
cameras, that would be a real hassle for them, and so much image quality
would be lost that they would not be very useful.

Anyhow,
Thanks for the reply.

Later,
Paul

Quote
"Peter Below (TeamB)" wrote:

> In article <3A1C0DA5.AD8F1...@futureone.com>, Paul Peterson wrote:
> > I need to prevent users of my app from doing 'Print Screens' of the
> > images that my app displays.

> That is a fools errant, don't waste any time on it. Even if you could
> blcok any way to copy the screen contents you cannot block anybody just
> taking a snapshot of the monitor using a digital or analog camera. So it's
> an utter waste of time.

> Peter Below (TeamB)  100113.1...@compuserve.com)
> No e-mail responses, please, unless explicitly requested!

Re:Preventing 'Print Screen'


Werner,

Thanks for all the useful hints. If it is true that the last hook gets
to see the hotkey first, that sounds like a good solution. Just
hook/re-hook everytime the app gets focus and filter out all hotkeys
(except alt-tab etc, as you suggest). I already minimize (and empty the
clipboard) everytime the app loses focus, so this should thwart most
attempts. I'm not worried about serious hackers, they get what they
deserve, and can't be stopped! Just need to thwart common and casual
attempts.

Later,
Paul

Quote
Werner Lehmann wrote:

> Paul Peterson wrote:

> > BTW, does anyone know if screen capture utilities work if you are using
> > Direct Draw and writting directly to graphic card memory ???

> IIRC SnagIt and HyperSnap can scroll the window contents and at least the
> latter is able to capture direct draw surfaces.

> You can use a system hook to capture any keypress. This is probably how
> the capture tools do it. Two problems with that:

> - you don't know which key is used as a capture hotkey. Of course you could
>   check if your app is the foreground app and let only alt+tab and similar
>   keys through if so.
> - The hooks are chained up and if the capture app registers its hook after
>   yours it will see the hotkey message first (and pass it on to your hook
>   but it is already too late).

> If we knew how the capture tools do their work maybe... for instance if they
> fake a WM_PAINT message and provide their own HDC... you may be able to find
> that out. But if they somehow access the video frame buffer directly there
> is no such way.

> What about this: Assume that there is only a handful of commonly used capture
> tools. Find out which tools these are. If one of these apps runs at the same
> time as your app shut your app down. This should stop most people. Of course
> you need to check this frequently. Or maybe there is a possibility to be
> informed by windows if another app starts up... don't know about that (would
> be interesting though!).

> Keep in mind that all this will not help against any serious hacking of your
> application.

> Regards,
> WL

Re:Preventing 'Print Screen'


"Paul Peterson" <pa...@futureone.com> skrev i en meddelelse
news:3A1EAAB7.C04CE765@futureone.com...

Quote
> Thanks for all the useful hints. If it is true that the last hook gets
> to see the hotkey first, that sounds like a good solution. Just
> hook/re-hook everytime the app gets focus and filter out all hotkeys
> (except alt-tab etc, as you suggest). I already minimize (and empty the
> clipboard) everytime the app loses focus, so this should thwart most
> attempts. I'm not worried about serious hackers, they get what they
> deserve, and can't be stopped! Just need to thwart common and casual
> attempts.

It's easy to take a snapshot of the screen anyway.
A simple program (made in Delphi for instance) could just take a snapshot of
the screen, say each second or so, using a timer and not a hotkey.
A program like that is sooo easy to make.

Finn Tolderlund

Other Threads