【问题标题】:Capture Media Keys when Application is Minimized最小化应用程序时捕获媒体密钥
【发布时间】:2011-11-04 01:01:51
【问题描述】:

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

【问题讨论】:

  • 我很高兴你将其作为一个选项 - 我讨厌傲慢的应用程序像这样接管系统范围的资源。

标签: c# keyboard media


【解决方案1】:

我认为没有简单的方法可以做到这一点,但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 的构造函数,并且能够监控所有的键盘事件。

【讨论】:

    【解决方案2】:

    您可以做到这一点,但只能通过一些全局挂钩 - 有关源代码和详细信息,请参阅

    编辑:

    注意某些媒体密钥会被转换为APP_COMMAND Windows 消息 - 所以您也应该考虑挂钩这些消息。

    如果您想让媒体播放器在按下(媒体)键时自动启动,请参阅链接here

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        只需在启动您的应用程序/表单时创建钩子。您可以为全局键向上、向下和按下事件设置 KeyEventHandlers。然后您可以检查它是否是您要查找的组合键。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-10-05
          • 2023-04-04
          • 2017-01-03
          • 1970-01-01
          • 1970-01-01
          • 2010-12-21
          • 1970-01-01
          • 2023-03-19
          相关资源
          最近更新 更多