为什么我检测不到触摸屏?

时间:2014-01-04 16:55:58

标签: c# wpf visual-studio-2012 .net-4.0

我正在使用此C#(wpf)代码来检测

上的触摸屏
return Tablet.TabletDevices.OfType<TabletDevice>().Any(dev => dev.Type == TabletDeviceType.Touch)

但它不起作用。 Tablet.TabletDevices计数始终为0。 我正在使用扩展触摸显示器(使用USB连接PC进行触摸检测)

有没有更好的方法来检查当前的PC是否有触摸屏?

感谢。

  

UPDATE1:

     

我不知道为什么,但即使我取下触摸屏USB和显示器,   GetSystemMetrics(SM_MAXIMUMTOUCHES)仍然会返回1.

     

UPDATE2:

     

看起来不起作用,我的意思是使用:

return GetSystemMetrics(SM_MAXIMUMTOUCHES) > 0
     

因为它总是返回1,即使我重新启动计算机(win7 OS,   笔记本电脑)

2 个答案:

答案 0 :(得分:1)

我使用了一种不同的方法,它适用于各种触摸屏。它适用于Win7及以上版本(定义为here,有关SM_DIGITIZER设置的部分)。

bool touchDevicePresent()
{
    return GetSystemMetrics(SM_DIGITIZER) & NID_READY;
}

答案 1 :(得分:0)

我猜thisthis会对您有帮助。