Windows.Device.Input介面提供了識別可用的輸入裝置並獲得這些裝置的資訊
KeyboardCapabilities
用於判斷當前是否串連了鍵盤裝置
其屬性KeyboardPresent進行判斷,當為0時表示未串連,不為0時表示已串連
Windows.Devices.Input.KeyboardCapabilities KeyboardCapabilities = new Windows.Devices.Input.KeyboardCapabilities();string status = string.Format("There is {0} keyboard present\n", KeyboardCapabilities.KeyboardPresent != 0 ? "a" : "no");
MouseCapabilities
用於判斷當前是否串連了滑鼠裝置
其屬性比KeyboardCapabilities多了些,如下:
HorizontalWheelPresent 該值表明是否有帶水平滾輪的滑鼠串連
MousePresent 表明是否有滑鼠串連
NumberOfButtons 該值表明當前串連的滑鼠中按鈕的數量,若有多個滑鼠串連,則返回滑鼠按鍵個數最多的數量
SwapButtons 該值表明當前串連的滑鼠裝置中是否具有左右交換按鈕的
VerticalWheelPresent 該值表明當前串連的滑鼠裝置中是否有垂直的滾輪
Windows.Devices.Input.MouseCapabilities MouseCapabilities = new Windows.Devices.Input.MouseCapabilities(); String info = string.Format("There is {0} mouse present\n", MouseCapabilities.MousePresent != 0 ? "a" : "no"); info += string.Format("There is {0} vertical mouse wheel present\n", MouseCapabilities.VerticalWheelPresent != 0 ? "a" : "no"); info += string.Format("There is {0} horizontal mouse wheel present\n", MouseCapabilities.HorizontalWheelPresent != 0 ? "a" : "no"); info += string.Format("The user has {0}opted to swap the mouse buttons\n", MouseCapabilities.SwapButtons != 0 ? "" : "not "); info += string.Format("The mouse has {0} button(s)\n", MouseCapabilities.NumberOfButtons);
TouchCapabilities
獲得串連的觸摸數字化儀的功能
Contats 表明支援所有數字化儀的最小連絡人數量
TouchPresent 表明當前終端是否有資料化儀
Windows.Devices.Input.TouchCapabilities TouchCapabilities = new Windows.Devices.Input.TouchCapabilities(); String info = string.Format("There is {0} digitizer present\n", TouchCapabilities.TouchPresent != 0 ? "a" : "no");info += string.Format("The digitizer supports {0} contacts\n", TouchCapabilities.Contacts);
PointerDevice
識別串連的指標裝置及它們的功能
var PointerDeviceList = Windows.Devices.Input.PointerDevice.GetPointerDevices(); string device=""; foreach (Windows.Devices.Input.PointerDevice PointerDevice in PointerDeviceList) { if (PointerDevice.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Mouse) { device ="mouse"; } else if (PointerDevice.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Pen) { device= "pen"; } else { device= "touch"; } }
今天就看了一點輸入裝置的功能用法,研究SMS收發資訊的功能時,卻被剛開始的SmsDevice.GetDefaultAsync()擷取資訊裝置給絆住了,報的錯誤是”服務尚未啟動。 (異常來自 HRESULT:0x80070426) ”,不知道是不是要先開啟什麼,望知者還能提醒一番^_^