开发者

Capture Media Keys when Application is Minimized

I want to provide an option with a media player I'm working on for the media keys to work even when it's minimized. What's the best way to capture and proces开发者_C百科s those key events in C# without having focus? Is it even possible?


I don't think that there is an easy way to do this but this (Using Window Messages to Implement Global System Hooks in C#) project may help. I added below code

    _GlobalHooks.Keyboard.KeyboardEvent += (w, l) => 
    {
          this.LblMouse.Text = "KEY: " + w.ToInt32().ToString("X8") + " " + l.ToInt32().ToString("X8");
    };
    _GlobalHooks.Keyboard.Start();

to the constructor of Form1 of GlobalHookTest and was able to monitor all the keyboard events.


You can do that but only with some global hooking - for source code and details see

  • http://globalmousekeyhook.codeplex.com/
  • http://www.codeproject.com/KB/system/globalsystemhook.aspx (more low level and will get any keys)

EDIT:

BEWARE that some Media Keys get translated into APP_COMMAND Windows messages - so you should think about hooking those too.

IF you want to make your mediaplayer automagically start on the press of a (media) key see the links here.


Use global keyboard hooks (Processing Global Mouse and Keyboard Hooks in C#)

Just create the hook when starting your app/form. You can set KeyEventHandlers for the global key up, down and press events. You can then check to see if it is the Key combination you are looking for.


For this prob I implemented this solution:

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜