检测平板电脑

3

我有一个.NET WinForms应用程序,一些用户会在Win7平板电脑上运行。对于这些用户,我想改变某些UI元素,使笔输入更容易,同时保持常规用户的这些项目不变。我已经能够找到关于笔和触摸设计指南以及电子墨水等细节的MSDN文档,但没有关于检测“此机器是否支持触控笔或触摸”的内容。有什么提示吗?

3个回答

3

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是否为平板电脑》。

来源

确定PC是否为平板电脑

MSDN Windows 平板电脑 - 常见问题解答


2

请查看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);
}

看看这个能否帮助到您。

1
除了接受的答案之外,您还应该为用户提供手动切换平板电脑和非平板电脑模式的可能性。检测可能会失败,或者操作系统未按设计方式使用。这可能会发生在使用非平板电脑操作系统和特殊软件的嵌入式设备上,反之亦然。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接