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) ”,不知道是不是要先開啟什么,望知者還能提醒一番^_^