2011-04-26 131 views
3

我有一个.net winforms应用程序,一些用户可以在Win7平板电脑上运行。对于这些用户,我想更改某些UI元素以使笔输入更容易,同时将这些项目单独留给常规用户使用。我已经能够找到关于触摸笔设计指南的msdn文档,并且可以在电子墨水等上进行实质性检查,但只是检测“此机器是否支持触控笔或触控”。任何提示?检测平板电脑

回答

3

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

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

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

来源

Determining Whether a PC is a Tablet PC

MSDN Windows Tablet - Frequently Asked Questions

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

看看这是否有帮助。

+0

完美!!!!!!!! – elle0087 2017-10-23 08:59:10

1

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