即使最小化,C#WPF也会捕获keydown

Gle*_*enn 1 c# wpf

我想知道当应用程序表单最小化时,如何使我的应用程序捕获任何keydown/keyup EVEN.比如,程序被最小化,然后用户按"A",将出现一个弹出控件.请注意,我的程序可以工作,但最小化时不能 谢谢.

Uts*_*awn 5

你需要的是HotKeys.没有内置的.NET功能允许这样做,但它内置于Win32 API中.

因此,你需要两个方法RegisterHotKeyUnregisterHotKey,这是user32.dllSystem.Runtime.InteropServices它包含了重要的命名空间DllImportAttribute,我们需要调用上述两个Win32 API函数来注册热键.

这里有两个链接,其中包含一个使用热键的好演示.

1)全局热键:注册即使表单未聚焦时触发的热键,

2)启用Hotkey和ShortcutInput用户控件的简单步骤

您必须使用这些修饰符和虚拟键代码(符号常量名称,十六进制值以及系统使用的虚拟键代码的鼠标或键盘等效项).

MOD_ALT      (0x0001)
MOD_CONTROL  (0x0002)
MOD_NOREPEAT (0x4000)
MOD_SHIFT    (0x0004)
MOD_WIN      (0x0008)
Run Code Online (Sandbox Code Playgroud)

例如A是0x41.