我想知道当应用程序表单最小化时,如何让我的应用程序捕获任何keydown / keyup。比如,程序被最小化,然后用户按“A”,将出现一个弹出控件。请注意,我的程序可以工作,但最小化时不能感谢。
答案 0 :(得分:5)
您需要的是 HotKeys 。没有内置的.NET功能允许这样做,但它内置于Win32 API中。
所以你需要两个方法RegisterHotKey
和UnregisterHotKey
,它位于user32.dll
和System.Runtime.InteropServices
命名空间中,其中包含我们需要调用的重要DllImportAttribute
上面两个Win32 API函数注册了Hotkey。
这里有两个链接,其中包含一个使用热键的好演示。
1)Global Hotkeys: Register a hotkey that is triggered even when form isn't focused,
2)Simple steps to enable Hotkey and ShortcutInput user control
您必须使用这些修饰符和Virtual-Key Codes(符号常量名称,十六进制值以及系统使用的虚拟键代码的鼠标或键盘等效项。):
MOD_ALT (0x0001)
MOD_CONTROL (0x0002)
MOD_NOREPEAT (0x4000)
MOD_SHIFT (0x0004)
MOD_WIN (0x0008)
例如A是0x41。