我有一個登錄應用程序,有一個只有觸摸屏的人才可以使用的滑動系統。他們可以通過刷他們的個人模式刷卡代碼來登錄。是否有可能讓我的c#wpf程序知道用戶是否有觸摸屏?
如果用戶有觸摸屏,可以檢查C#或WPF嗎?即使當時他沒有使用觸摸屏嗎?
我有一個登錄應用程序,有一個只有觸摸屏的人才可以使用的滑動系統。他們可以通過刷他們的個人模式刷卡代碼來登錄。是否有可能讓我的c#wpf程序知道用戶是否有觸摸屏?
如果用戶有觸摸屏,可以檢查C#或WPF嗎?即使當時他沒有使用觸摸屏嗎?
我不認爲託管代碼中有任何東西可用,但您可以在Win32_DesktopMonitor
上使用P/Invoke。欲瞭解更多信息,請參閱msdn。
我發現這個博客,帖子,可能會有幫助,即使它在Windows CE:http://blog.nerdbank.net/2006/10/platform-detection-iii-how-to-detect.html
在C#代碼,以找出是否存在觸摸屏(不檢查其單一或多觸摸設備雖然)通過在PresentationCore
中使用System.Windows.Input
命名空間。
public bool HasTouchInput()
{
foreach (TabletDevice tabletDevice in Tablet.TabletDevices)
{
//Only detect if it is a touch Screen not how many touches (i.e. Single touch or Multi-touch)
if(tabletDevice.Type == TabletDeviceType.Touch)
return true;
}
return false;
}
有非WPF應用程序在Windows XP Tablet PC版IInkTablet2 COM接口或託管包裝Microsoft.Ink.Tablet類。但是,大多數觸摸屏驅動程序都是「鼠標」驅動程序,無法通過這種方式檢測到。
爲什麼這不適合我?請看:http://stackoverflow.com/questions/20923853/why-i-cant-detect-touch-screen – qakmak 2014-01-07 15:25:51
這對我的Win8 Surface平板電腦和Win7筆記本電腦(內置觸摸屏)工作。 – 2015-11-19 22:18:57
15人測試了答案,它的工作原理。爲什麼它沒有被標記爲正確答案? – Harry 2016-07-10 12:30:24