views:

327

answers:

3

I need a way in C# to monitor system-wide keys such as Ctrl+A, so I can act upon that.

How could I get such an event, even when the keys were pressed with my App no longer in focus?

A: 

I don't think there's a managed way to do that. At an API level you can register system-wide hooks or global hotkeys.

Writing a keylogger? :-)

marklam
+3  A: 

You can use the RegisterHotKey function to react system-wide to hotkeys. However, I wouldn't advise you to use something like Ctrl+A which has a meaning in many applications.

Joey
+2  A: 

Have a look at this link : Global System Hooks in .NET

Thomas Levesque
Terrific! Solved my problem since it uses *global* hooks, ie. it receives Keyboard and Mouse event performed in any application.
Jenko
Seems easier than Johannes Rossel's solution. Thanks to both of you and plus 1 to both.
Ismail