【问题标题】:Global keyhook for mediakeys in C#C# 中媒体密钥的全局密钥挂钩
【发布时间】:2014-11-15 02:42:58
【问题描述】:

使用以下RegisterHotKey 函数,我可以全局挂钩普通键修饰符组合:

[DllImport("user32.dll")]
private static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint vk);

关于它的精彩文章和完整的源代码在这里:http://www.liensberger.it/web/blog/?p=207

但问题是,我如何挂钩媒体键,即键盘和电脑遥控器中的播放/暂停/下一个/上一个键?我用谷歌搜索和搜索,但没有任何运气。

【问题讨论】:

    标签: c# winforms keyhook media-keys


    【解决方案1】:

    vk 参数(在将其转换为 uint 之后)和 0 使用 System.Windows.Forms.Keys.MediaPlayPauseSystem.Windows.Forms.Keys.Play 等值fsModifiers(除非您想注册 Shift-Play、Alt-Play 或其他组合键)。

    【讨论】:

    • 我试过了,但它不适用于我的键盘(Logitech Illuminated Keyboard K740)。 Media Keys 可以与其他媒体应用程序一起正常工作,但不能与 C# System.Windows.Forms.Keys.Media* 一起使用。任何正常的 KeyEvent 也没有运气,C# 只是无法识别我的媒体键。我可以处理媒体键的唯一方法是覆盖 WndProc,并检查 WM_APPCOMMAND,但这样我无法获得全局热键。其他想法?
    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 2016-11-15
    相关资源
    最近更新 更多