Wacom 的驱动程序一直很糟糕,所以我目前正在研究一个 hack。
我遇到的主要问题是在平板电脑上进行校准。在你说什么之前:不,只是不。我已经尝试了几十个驱动程序,在少数可以工作的驱动程序中,没有一个允许校准 Wintab 输入。您可以校准 MS Ink,但这对于不支持 Ink API 的应用程序(如 Photoshop)没有任何作用。
在对这个问题进行了一些研究之后,我打算破解它的方法是为 wintab32.dll 编写一个包装器,该包装器在数据包发送到应用程序时对其进行调整,启用校准并可能调整压力敏感度以及我认为 Wacom 应该做的任何其他事情一直支持。
校准功能很简单,包装 wintab32.dll 并获取需要校准的数据也是如此。据我所知,大约有六个函数请求数据包数据,并且我在每个函数中都插入了代码来修改所述数据。
它也有效,至少如果我在一些 wintab 示例项目上测试它。
但是,Photoshop 是不同的。我可以确认它加载了打包的 DLL,打开了一个 wintab 上下文并使用 API 来请求数据包数据,然后在途中对其进行修改。但随后 Photoshop 会忽略修改,并以某种方式获取原始的、未校准的数据并使用它。我在 Wintab 文档中找不到任何东西来暗示这甚至是可能的。
我很困惑。有什么想法吗?
难道 Photoshop 只从 Wintab 请求数据包以清除数据包队列,然后执行其他操作来实际读取触控笔的状态?如果是这样,那会是什么?使用 WTInfo 轮询数据的一些秘密、晦涩的方法?Wintab 和底层驱动程序/串行端口之间的数据流挂钩?