2016-03-31 5 views
1

私はコードwinformでkeydown関数を他のウィンドウで使用するにはどうすればよいですか?

private void Form1_KeyDown(object sender, KeyEventArgs e) 
    { 
     if(e.KeyCode== Keys.Z) 
     { 
      BarTimer.Value = 0; 
      timer1.Start(); 
      timer1.Interval = 500; 
      BarTimer.Minimum = 0; 
      BarTimer.Maximum = 80; 
     } 
    } 

のこの作品を持っており、それだけで正常に動作しますが、私はフルスクリーンアプリケーションでときにそれを押すことができるようにしたいので、私は私の第二のモニタ上のプログレスバーを見ることができます。それが私のように機能するように変えることができる財産か何かありますか?

+0

次のように入力フォーカスがフォームではなく、別の画面にあるときに、キーに対応するために意味しますか? –

+0

そうですね。 – dvs

+0

アプリケーション内の他の画面はありますか、それとも他のアプリケーションにもありますか? –

答えて

1

単一のキーの場合は、RegisterHotKeyを使用できます。この回答にはサンプルコードがあります:how to use RegisterHotKeyとその中にリンクされています。 Microsoft C++のドキュメントはhereです。

すべてのキーボード入力をインターセプトしたい場合は、キーフックが必要です。私はあなたにGoogleのWH_KEYBOARD_LLとSetWindowsHookExをお勧めします。しかし、私はあなたがC#でこれを行うことができるとは思わない。私はC/C++で書かれたキーフックしか見たことがありません。また、一部のファイアウォールに関心が寄せられます - すべてのキーボード入力を傍受することは、潜在的に敵対的であるとみなすことができます。

+0

申し訳ありません、ありがとう! – dvs

1

こんにちは私はコードプロジェクトで見つけた素敵なチュートリアルを知っています。 私はこのようなものが必要なときにはうまくいった。

http://www.codeproject.com/Articles/19004/A-Simple-C-Global-Low-Level-Keyboard-Hook

よろしく、

+0

このリンクは質問に答えるかもしれませんが、ここに答えの重要な部分を含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューの投稿](/レビュー/低品質の投稿/ 18997623) – Blackwood

関連する問題