我有一个.net winforms应用程序,一些用户将在Win7平板电脑上运行它。对于这些用户,我希望更改某些UI元素以使笔输入更容易,同时将这些项目留给常规用户使用。我已经能够找到关于笔和触摸的设计指南的msdn文档,以及关于电子墨水之类的细节,但没有关于仅仅检测“这台机器是否支持触控笔或触摸”的内容。有什么提示吗?
发布于 2011-04-27 02:54:25
A.使用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
发布于 2011-04-27 02:55:38
参见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);
}看看这是否有帮助。
发布于 2011-05-03 04:19:00
除了接受的答案之外,您还应该允许用户手动在平板电脑和非平板电脑模式之间切换。检测可能会失败,或者操作系统也不是按照设计的方式使用。这可能发生在嵌入式设备上,这些设备使用带有特殊软件的非平板电脑操作系统,反之亦然。
https://stackoverflow.com/questions/5795010
复制相似问题