检测平板电脑

时间:2011-04-26 18:48:19

标签: c# .net winforms tablet

我有一个.net winforms应用程序,一些用户将在Win7平板电脑上运行。对于这些用户,我想更改某些UI元素以使笔输入更容易,同时将这些项目留给普通用户。我已经能够找到关于笔和笔的设计指南的msdn文档。触摸和电子墨水上的细节,但没有任何东西只是检测“这台机器是否支持手写笔或触摸”。任何提示?

3 个答案:

答案 0 :(得分:3)

一个。使用Windows GetSystemMetricsAPI并传入SM_TABLETPC作为索引的值。 SM_TABLETPC在Winuser.h中定义。 SM_TABLETPC的值为86。

对于Web开发,您应该阅读USER_AGENT_STRING环境变量。您可以访问此Request.ServerVariables集合。

有关如何在运行Windows Vista或Windows XP Tablet PC Edition的Tablet PC上使用GetSystemMetrics的详细信息,请参阅确定PC是否为Tablet PC。

来源

Determining Whether a PC is a Tablet PC

MSDN Windows Tablet - Frequently Asked Questions

答案 1 :(得分:2)

msdn post。他们在该页面中有一个例行程序

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);
}

看看这是否有帮助。

答案 2 :(得分:1)

除了已接受的答案,您还应该让用户可以在平板电脑和非平板电脑模式之间手动更改。检测可能会失败,或者操作系统也不会按照设计方式使用。这种情况可能发生在使用非平板电脑操作系统和特殊软件的嵌入式设备上,反之亦然。