2013-10-20 174 views
-1

我正在創建一個程序,可以使用鍵盤上的按鈕來增加/減少音量控制。我已經創建了用我指定的按鈕來增加/減少音量的代碼,但是當我在另一個程序中激活時,如果我按下鍵盤上的按鈕,它們不會增加或減少音量。現在我需要一個代碼來保持我的表單始終被選中,即使另一個表單已被激活,我嘗試使用Me.Topmost = true,但它沒有工作,因爲表單沒有被選中。我花了幾個小時試圖尋找任何提示,但無濟於事,但有人必須知道如何做到這一點,所以任何幫助表示讚賞。 - 我正在使用Visual Basic 2012如何始終選擇表格

+1

如果你確實設法找到一種方法來指導所有輸入到這個應用程序,你將如何使用任何其他應用程序?看來您所面臨的問題與您提出的解決方案恰好相反。問題在於,在使用其他應用程序時,無法將輸入引導至此應用程序。你想要的解決方案是強制這個應用程序成爲唯一一個接受輸入的應用程序。這可以通過簡單地不使用其他應用程序來實現。谷歌「vb.net registerhotkey示例」爲 – David

+0

。 –

+0

花幾個貨幣單位和購買一個多媒體鍵盤 – Plutonix

回答

1

我想你實際上想要的是一個「全局鍵盤鉤子」。你需要添加從以下鏈接一些代碼,但使用它很簡單......

要創建掛鉤:

Private WithEvents kbHook As New KeyboardHook 

然後每個事件可以處理:

Private Sub kbHook_KeyDown(ByVal Key As System.Windows.Forms.Keys) Handles kbHook.KeyDown 
    Debug.WriteLine(Key.ToString) 
End Sub 
Private Sub kbHook_KeyUp(ByVal Key As System.Windows.Forms.Keys) Handles kbHook.KeyUp 
    Debug.WriteLine(Key) 
End Sub 

從這裏盜取: How to listen keyboard in background and fire keystrokes on demand?

+0

感謝您的評論,現在你知道我應該在哪裏指定按鈕點擊? – user2901055

+0

如果你使用鍵盤鉤子,它不是一個按鈕點擊,它將在KeyDown,KeyPress或KeyUp事件中(如上所列)。 –

+0

我一直試圖讓代碼工作一段時間,但它不會工作(在另一個網站上的代碼)它給了我這個錯誤消息:在System中發生未處理的類型爲「System.StackOverflowException」的異常。 Windows.Forms.dll在此代碼:Public Sub New()你知道我可以解決這個問題嗎?謝謝 – user2901055