我有一个.NET WinForms应用程序,一些用户会在Win7平板电脑上运行。对于这些用户,我想改变某些UI元素,使笔输入更容易,同时保持常规用户的这些项目不变。我已经能够找到关于笔和触摸设计指南以及电子墨水等细节的MSDN文档,但没有关于检测“此机器是否支持触控笔或触摸”的内容。有什么提示吗?
A. 使用Windows的GetSystemMetricsAPI并将SM_TABLETPC作为索引值传入。SM_TABLETPC在Winuser.h中定义,其值为86。
对于Web开发,您应该阅读USER_AGENT_STRING环境变量。您可以访问此Request.ServerVariables集合。
有关如何在运行Windows Vista或Windows XP Tablet PC Edition的平板电脑上使用GetSystemMetrics的详细信息,请参阅《确定PC是否为平板电脑》。
来源
请查看MSDN文章。该页面中有一例程。
using System.Runtime.InteropServices;
[DllImport("user32.dll")]
private static extern int GetSystemMetrics(int nIndex);
// System metric constant for Windows XP Tablet PC Edition
private const int SM_TABLETPC = 86;
private readonly bool tabletEnabled;
protected bool IsRunningOnTablet()
{
return (GetSystemMetrics(SM_TABLETPC) != 0);
}