2014-09-20 43 views
3

用下面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搜索了一下,但沒有任何運氣。

回答

2

使用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