How do I trap Windows key, Alt+Tab, and Ctrl+Alt+Delete in a Windows application using C#?
-
Duplicates: http://stackoverflow.com/questions/1292165/how-to-trap-the-keyboard-strokes-on-a-c-win-forms-application-ctrl-alt-del http://stackoverflow.com/questions/886076/how-can-i-intercept-all-key-events-including-ctrlaltdel-and-ctrltab – dtb Aug 28 '09 at 12:28
-
6Yeah, but the original questions didn't use the cool `` tags! – P Daddy Aug 28 '09 at 12:43
-
2I would recommend that you DON'T do this, if at all possible. When I press those keys, I'm expecting certain behavior, and if an application that I'm using prevented that behavior, I'd be upset. – Matt Grande Aug 28 '09 at 12:53
-
5@Matt Grande: Sometimes what is required is not what the user wants. For instance, this exact behavior is often required for kiosk software. – P Daddy Aug 28 '09 at 12:59
5 Answers
You can capture Ctrl-Alt-Delete. But you need to implement your own GINA dll which is loaded by Winlogon.
You'll need to code this up in C or C++ as it needs to be a native DLL.

- 4,859
- 8
- 38
- 45
As Jan stated, you can't capture CTRL-ALT-DEL without writing your own GINA.
For the Windows or ALT-TAB keys, you can look at these for help:
Capturing Keystrokes without Focus (SO near-duplicate)
Hooks (low-level, but will explain what you need for the P/Invoke)

- 1
- 1

- 9,860
- 3
- 34
- 39
Some Remote Management Software and Virtual Machines do this. If you press [CTRL]+[ALT]+[DEL] the specific Windows Dialog will still opens, but the Application also displays, that you have pressed [CTRL]+[ALT]+[DEL] and probably wanted it t become effective on the Target Machine and not your host. It seams rather easy to capture these keys, but cancelling the Event may be harder.

- 11
- 1
AFAIK Ctrl + Alt + Delete cannot be captured using an application.
See this question to get some more idea: How to trap the keyboard strokes on a c# win forms application (CTRl + alt +Del)