我有一个 .net winforms 应用程序,一些用户将在 Win7 平板电脑上运行。对于这些用户,我想更改某些 UI 元素以使笔输入更容易,同时将这些项目单独留给普通用户。我已经能够找到有关笔和触摸设计指南的 msdn 文档,以及有关电子墨水等的细节,但仅检测“这台机器是否支持手写笔或触摸”就没有任何内容。有什么提示吗?
4138 次
3 回答
3
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。
来源
于 2011-04-26T18:54:25.117 回答
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);
}
看看这是否有帮助。
于 2011-04-26T18:55:37.733 回答
1
除了接受的答案之外,您还应该让用户可以在平板电脑和非平板电脑模式之间手动切换。检测可能会失败,或者操作系统也没有按照设计的方式使用。这可能发生在使用带有特殊软件的非平板电脑操作系统的嵌入式设备上,反之亦然。
于 2011-05-02T20:19:00.387 回答