tags:

views:

1377

answers:

1

I have written a small program displaying sounds and images on the screen when pushing any button. I always start it when one of my little kids crawls onto my lap and start hitting the keys, of course, randomly.

It works fine except for 2 keys, one of them being the ON/OFF switch, the other being the Windows-key. (the CTRL-ESC equivalent I believe) I can intercept it as it is pressed, but only after the startmenu is showing.

The event I use is the UIElement.KeyDown and all I could came up with so far is : (the e being KeyEventArgs)

            if (e.Key == Key.LWin) e.Handled = true;

but than the start window is already showing I'm afraid.

I have already 1 answer but would very much like to know if there's any wpf-support?

I suspect programming the main on/off switch might not be possible? Otherwise, any help there would be welcome too..

+4  A: 

You'll need a keyboard hook. Unfortunately, this has to be done with P/Invoke; it can't be done with managed code.

Check out Baby Smash! by Scott Hanselman. It's hosted on code plex at http://www.codeplex.com/babysmash.

Alternatively, check out ShapeShow on CodeProject, which is similar.

AB Kolan
That's definitely an answer, tx. But it requires interop, no native wpf support you're aware of?
Peter
Yep. Needs interop. Updated AB's answer to explain that, and added link to ShapeShow.
Roger Lipscombe
Ok, If you guys are sure, thanks for answering! (I alreaydy have installed babysmash in the meantime)
Peter