views:

125

answers:

5

i am developing a video player i silverlight i wanna something to prevent recording or screen capturing

i thought about hacking the windows APIs and stop my program from running if there was any of those capturing software asking the user to close it first but i donno how to do this

is there another solution ??!!!!

A: 

How badly do you need this? There are many ways to defeat screen capture protection: for instance, aiming a video recorder at the computer screen (or looping output to a TV with a capture card, etc. etc. etc.)

Go for a commercial solution if you really really need this: don't have any experience with those myself, however.

Tobiasopdenbrouw
+1  A: 

You could go about using a key hook system, stopping the user pressing the print screen key on the keyboard, that would be a start. There aren't many systems which stop users from print screening video specifically. You might want to try just watermarking your video instead? At least then people know that the video was originally sourced from you.

Joel Kennedy
+3  A: 

It's simple not possible. If you try it, you're only going to annoy people. Even 'hacking the windows API' would not work, since the OS itself could be run inside a VM.

dkson
i guess i can user system.diagnostics.process to retrieve the running processes - but i can't find it in the silverlight project
Miroo
Blizzard is able to detect most cheat/bot software that runs in parallel to their games - so don't say it's impossible.
Dave
@Dave detecting cheat/bot software has nothing to do with screen capturing.
dkson
@dkson hm I thought the opposite. Since in both cases you have to detect other software that runs at the same time and behaves in a strange way (for example listens to the video output - if that's possible to detect by win api calls..). I hoped to gain a little insight how such things are done in the answers but they unfortunately focus on how the idea is bad to begin with.
Dave
@Dave The point is to capture the screen, you don't need extra software running on the system that runs the video player, since it could be run in a VM or the video output could be captured at hardware level. To detect cheating in games, there are lot of other practices, like behaviour analysis or checking the game files for integrity. Of course the answers focus on how bad the idea is, since it is really a very idea. It's like transporting information between applications via the clipboard...
dkson
A: 

The solution is not to allow your application to run on a computer, but instead target a device such as a phone. Computers will always allow some kind of screen capture and video capture but this is much harder and less likely to be tackled if you restrict to only playing on certain devices.

Martin
+1  A: 

I hate to be a downer, but task is impossible to fully accomplish.

If you were somehow able to hook the keyboard (from a silverlight app no-less) I would certainly hope that whatever AV the user is running would throw up some red flags.

Also what if the user doesn't use the standard (alt)+prtscr? A third-party tool might use a different key-combo. Also, I've written a screen-grabber with the GDI+ API, and there's no way to disable something that low-level.

What about attached capture-cards? What if your app is running in a VM or over remote-desktop?

If you are that deeply concerned about protection your HD content, watermark it, or make the user pay for it first.

All-in-all, as soon as your content's data enters your user's computer, they can duplicate it.

sigint
i do but i am trying to consider the spreading after first time paying
Miroo
@Miroo Fully preventing a user from copying and distributing your content is impossible. Although you could always (attempt to) take legal action if a user violates your TOS.
sigint