2016-03-31 55 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

如果你想攔截所有的鍵盤輸入,你需要一個鑰匙扣。我建議你谷歌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

儘管這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/18997623) – Blackwood

相關問題