2015-02-12 137 views
2

我正在開發一個C#winforms的應用程序。如何以編程方式檢查鍵盤是否連接?

我們的應用程序將安裝在win8表面(觸摸屏設備)上。

我們想要檢查一個鍵盤是否通過USB連接,然後我們的應用程序不會顯示軟鍵盤,否則它會顯示。

許多方法可用於檢查WinRT,但不支持winforms C#。

如果我的問題不清楚,請讓我知道。

在此先感謝。

+0

WMI我會想象 – 2015-02-12 07:40:42

+0

@CallumLinington我們試過這個,但它顯示鍵盤註冊與機器列表不提供事件,如果鍵盤連接或不.Thanks – 2intor 2015-02-12 07:42:40

+0

這些問題似乎是相關的http://stackoverflow.com/questions/9930958/win32-determining-when-keyboard-is-connected-disconnected http://stackoverflow.com/questions/11993680/detect-keyboard-presence-in-windows-8-desktop-program – Codor 2015-02-12 07:42:44

回答

2

我剛纔寫的和W8測試:

ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select Name from Win32_Keyboard"); 

     foreach(ManagementObject keyboard in searcher.Get()) 
     { 
      if (!keyboard.GetPropertyValue("Name").Equals("")) 
      { 
       Console.WriteLine("KB Name: {0}", keyboard.GetPropertyValue("Name")); 
      } 
     } 

我還與第二鍵盤,可以看到它檢測出來。當我拔下一個我得到一個條目,當拔掉兩個我什麼都沒有。

我也發現了一些例子在這裏: Example 1 這裏Example 2

希望這有助於。

+0

有沒有辦法讓我們可以得到鍵盤連接/斷開的事件? – 2intor 2015-02-12 08:42:04

+0

這真的有用嗎? Afaik Windows 8平板電腦將永遠註冊爲擁有1個鍵盤,無論它們是否具有物理屬性(至少是Surface 3),還是我誤解了某些內容? – Snellface 2015-11-12 15:30:32

相關問題