问题
How do I trap Windows key, Alt+Tab, and Ctrl+Alt+Delete in a Windows application using C#?
回答1:
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.
回答2:
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)
How To Set A Windows Hook
Hooks (low-level, but will explain what you need for the P/Invoke)
回答3:
Almost by definition, you can't "trap" ctrl-alt-delete.
回答4:
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)
回答5:
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.
来源:https://stackoverflow.com/questions/1346689/how-do-i-trap-windows-key-alttab-ctrlaltdelete-in-c