最小化应用程序时捕获媒体密钥

我想提供一个媒体播放器的选项,我正在努力使媒体键工作,即使它被最小化。 在没有焦点的情况下,在C#中捕获和处理这些关键事件的最佳方法是什么? 它甚至可能吗?

我认为没有一种简单的方法可以做到这一点,但这(使用窗口消息来实现C#中的全局系统挂钩)项目可能有所帮助。 我在下面添加了代码

_GlobalHooks.Keyboard.KeyboardEvent += (w, l) => { this.LblMouse.Text = "KEY: " + w.ToInt32().ToString("X8") + " " + l.ToInt32().ToString("X8"); }; _GlobalHooks.Keyboard.Start(); 

到GlobalHookTest的Form1的构造函数,并能够监视所有键盘事件。

你可以做到这一点,但只有一些全局挂钩 – 源代码和细节见

编辑:

请注意,某些媒体密钥会被转换为APP_COMMAND Windows消息 – 因此您应该考虑将它们挂钩。

如果您想通过按(媒体)键自动启动媒体播放器,请参阅此处的链接。

使用全局键盘挂钩( 在C#中处理全局鼠标和键盘挂钩 )

只需在启动app / form时创建钩子。 您可以为全局键up,down和press事件设置KeyEventHandlers。 然后,您可以检查它是否是您要查找的组合键。

为此,我实现了这个解决方案:

http://blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx