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

时间:2011-08-25 20:38:20

标签: c# keyboard media

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

4 个答案:

答案 0 :(得分:6)

我认为没有一种简单的方法可以做到这一点,但this (Using Window Messages to Implement Global System Hooks in C#)项目可能有所帮助。 我在下面添加了代码

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

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

答案 1 :(得分:3)

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

修改

请注意某些媒体密钥被转换为APP_COMMAND Windows消息 - 所以你应该考虑将它们挂钩。

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

答案 2 :(得分:1)

使用全局键盘挂钩(Processing Global Mouse and Keyboard Hooks in C#

在启动应用/表单时创建挂钩。您可以为全局键up,down和press事件设置KeyEventHandlers。然后,您可以检查它是否是您要查找的组合键。

答案 3 :(得分:-1)

对于这个问题,我实施了这个解决方案:

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