我想提供一个媒体播放器的选项,我正在努力使媒体键工作,即使它被最小化。在没有焦点的情况下,在C#中捕获和处理这些关键事件的最佳方法是什么?它甚至可能吗?
答案 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)
对于这个问题,我实施了这个解决方案: