2011-08-25 16 views
8

メディアキーを最小限に抑えても機能するように、私が取り組んでいるメディアプレーヤーにオプションを提供します。フォーカスを持たずに、C#でキーイベントをキャプチャして処理する最善の方法は何ですか?それも可能ですか?アプリケーションが最小化されたときのメディアキーの取得

+1

WPFまたはWinForm? – ARZ

+0

私はあなたがそれをオプションにしてうれしいです - 傲慢なアプリケーションがそういうシステム全体のリソースを引き継いだときは嫌です。 –

答えて

6

これは簡単な方法はありませんが、this (Using Window Messages to Implement Global System Hooks in C#)プロジェクトが役に立ったと思います。 IはGlobalHookTestのForm1のコンストラクタにコード

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

下に追加し、すべてのキーボードイベントを監視することができました。

3

あなたはそれを行うことができますが、唯一のいくつかのグローバルフックで - 詳細は

EDITをソースコードと:

一部のメディアキーは翻訳されていますwindowsメッセージにはAPP_COMMANDが含まれています。

メディアプレーヤーを(メディア)キーを押すと自動的に開始したい場合は、リンクhereを参照してください。このPROBのために

1

使用グローバルキーボードフック(Processing Global Mouse and Keyboard Hooks in C#

をあなたのアプリ/フォームを起動するときだけフックを作成します。グローバルキーのup、down、およびpressイベントに対してKeyEventHandlerを設定できます。次に、探しているキーの組み合わせかどうかを確認することができます。

関連する問題