c# - 如何检测 Windows 设备是否支持触控

标签 c# .net winforms touchscreen

如何在 C# 中为 WinForms 应用(非 WPF)检测设备是否支持触摸。

  • 我在 GetSystemMetrics 上找到了信息。但我找不到如何在 C# 中使用它。

  • 我尝试使用 System.Windows.Input.Tablet 类。但它不会出现在 C# 中,即使我使用的是 .NET Framework 4.5。

  • 我尝试使用 System.Windows.Devices。但它不会出现在 C# 中,即使我使用的是 .NET Framework 4.5。

  • 我也检查了Detect whether a Windows 8 Store App has a touch screenHow to detect a touch enabled device (Win 8, C#.NET) ,这似乎使这个问题重复。但是,这些都不能回答我的问题。

最佳答案

GetSystemMetrics 似乎是正确的方法。它应该像这样通过 P/Invoke 访问:

[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern int GetSystemMetrics(int nIndex);

public static bool IsTouchEnabled()
{
     const int MAXTOUCHES_INDEX = 95;
     int maxTouches = GetSystemMetrics(MAXTOUCHES_INDEX);

     return maxTouches > 0;
}

关于c# - 如何检测 Windows 设备是否支持触控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27803965/

相关文章:

c# - 在c#中编码和解码安全吗?

c# - 如何让风格警察忽略特定的违规实例

mysql - 连接到数据库时未处理 SocketException

c# - 在 C# webbrowser 中访问全局 javascript 变量

c# - Winforms,最小化,文本

c# - 组织 using 指令,重新运行测试?

c# - 覆盖基类的实现,使得从继承的基类函数调用也调用被覆盖的函数

c# - 拆分没有分隔符的字符串

c# - 如何在 WPF 中自动检测 Flowdirection RightToLeft 或 LeftToRight

c# - XNA 和 WinForms