在C#mediakeys全球keyhook

问题描述:

用下面RegisterHotKey功能,我可以在全球范围勾正常修饰键组合:http://www.liensberger.it/web/blog/?p=207在C#mediakeys全球keyhook

但问题:

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

它和完整的源代码在这里大文章是,我该如何钩住媒体键,那些在键盘和电脑遥控器中找到的播放/暂停/下一个/前一个键?我用google搜索了一下,但没有任何运气。

使用System.Windows.Forms.Keys.MediaPlayPauseSystem.Windows.Forms.Keys.Play,为VK参数值等和为fsModifiers((它铸造于UINT后)unles要轮班播放,注册的Alt播放或其他键组合)。

+0

我试过了,但它不适用于我的键盘(Logitech Illuminated Keyboard K740)。媒体键可以与其他媒体应用程序正常工作,但不能与C#System.Windows.Forms.Keys.Media *兼容。没有任何正常的KeyEvent运气,C#只是不能识别我的媒体密钥。唯一可以处理媒体密钥的方式是重写WndProc,然后检查WM_APPCOMMAND,但是我无法获取全局热键。其他想法? – darx 2014-09-20 21:11:32