0

我想编写一个在 Surface Book 上获取笔输入的应用程序。

主要动机是新的 Surface Pen Platinum 宣传倾斜和 4096 级压力,但我找不到倾斜响应(可能不是 4096 级灵敏度)。我试图理解并记录这一点。

Surface Book 使用 N-Trig 笔而不是 Wacom 笔。我注意到 Corel Painter、Krita 和 Rebelle 等绘图应用程序提供了执行 WinTab 或使用 Windows 实现的选项,并且似乎可以使用任何一种方式。我正在使用 Photoshop CS5,它在 N-Trig 时代之前,根本没有任何此类选项,但仍然有效。

此 Surface Book 上未安装 Wacom 驱动程序。在 Surface 计算机的早期,您可以从 Microsoft 下载 WinTab 驱动程序,这显然解决了 Photoshop 问题。您仍然可以下载驱动程序,这些驱动程序的当前版本是 Wintab_x64_1.0.0.20。它们的日期为 2015 年 1 月 12 日,包括两个 DLL:wintab32、dll 和 DHid.dll。这些都没有出现在这本 Surface Book 上。

我从 Wacom SDK 下载了 TiltTest 应用程序,并让它在另一台安装了 Wacom 驱动程序并使用 Wacom Pen 的计算机上工作。有了代码,我可以看到它提供了倾斜信息(高度和方位角)和 1024 级压力(值至少从 0 到 1023)。如果我尝试在 Surface Book 上运行此应用程序,它只是说找不到 wintab32.dll 并且无法运行,即使 Microsoft wintab32.dll 与 .exe 位于同一目录中也是如此。使用目录中的 Wacom wintab32.dll,它可以通过,但找不到平板电脑服务。它正在使用 WM_PACKET 消息,这显然是特定于 Wacom 的。

我注意到一种可能性似乎是使用 WM_POINTER API。但是,这显然是从 Windows 8.1 开始的,并且不会被 Photoshop CS5 使用。

所以问题是 Photoshop 在这个环境中是如何工作的,以及其他应用程序在做什么来实现 WinTab 或其他东西。我将如何在一个简单的应用程序中使用它来查看我是否正在获得瓷砖以及压力水平。

4

1 回答 1

0

答案是它不起作用。我忙于测试倾斜,没有注意到没有压力敏感性,并且形状动力学上的警告标志上写着“通过压力控制需要压力感应片”。它就像一只老鼠,而不是一支笔。我不经常使用 Photoshop 进行绘图,否则我会很快看到这一点。

使用 Spy++,我确定它没有收到像 WT_PACKET 这样的 Wintab WT_xxx 消息。(它们在 0x7FF0 到 0x7FFF 的范围内,即 WM_USER 范围的顶部。)

解决方案是安装 Microsoft 提供的 N-Trig Wintab DLL、wintab32.dll 和 NHid.dll。之后,警告消失了,并且有压力感应。此外,Spy++ 表示 Photoshop 主窗口现在正在接收 WT_xxx 消息。

因此,正如预期的那样,Photoshop CS5 实现了 WinTab,并且可能不知道后来的 API。N-Trig 是模拟 WinTab,N-Trig wintab32.dll 功能相同,但实现方式不同。

就倾斜和方位角而言,Surface Book 不提供它们,即使使用新的 Surface 触控笔也是如此。提到的所有绘图应用程序,包括 Photoshop,都没有显示倾斜或方位角。我最近在 Surface Book 2 和 Surface Pro 6 上尝试了同一支笔,它们确实提供了倾斜和方位角,尽管使用实时触控笔 (RTS) API 的应用程序似乎没有方位角。

于 2018-11-01T19:53:54.683 回答