0

我想过将键盘上的一些键映射到鼠标按钮,但只有在平板电脑处于活动状态时(笔悬停在平板电脑上)。有没有办法在全球范围内跟踪此类事件?我使用 Wacom Bamboo Pen&Touch 数位板和 Windows 7 SP1。

4

2 回答 2

0

http://www.wacomeng.com/windows/

wacom 有自己的 API 供开发人员使用

于 2014-12-24T08:33:15.500 回答
0

3.28。我可以使用什么工具来确定平板电脑是否正在发送消息?WinDDK 中的 hclient 工具是确定您的平板电脑是否正在发送笔消息的好方法。此工具不依赖于 Wintab;相反,它连接到平板电脑的 HID 描述符,因此可以在平板电脑数据从 HID 内核堆栈发送时对其进行监控。只需从 hclient 枚举的 HID 设备列表中选择设备(请注意,供应商 ID = 0x56a,用于 Wacom)。确保使用页面 = 0xD,使用 = 0x1。按对话框底部的“Blocked Read Data”按钮,当数据对话框出现时按“Continuous Asynchronous Read”按钮。将笔触碰数位板以查看数据。

而且我认为原始输入对您更有帮助:原始输入模型

以前,键盘和鼠标通常会生成输入数据。系统对来自这些设备的数据进行解释,从而消除了原始信息中特定于设备的详细信息。例如,键盘生成特定于设备的扫描码,但系统为应用程序提供虚拟键码。除了隐藏原始输入的细节之外,窗口管理器并不支持所有新的 HID。要从不受支持的 HID 获取输入,应用程序必须做很多事情:打开设备、管理共享模式、定期读取设备或设置 I/O 完成端口等等。

原始输入模型和相关 API 的开发允许从所有输入设备(包括键盘和鼠标)轻松访问原始输入。

原始输入模型不同于键盘和鼠标的原始 Windows 输入模型。在原始输入模型中,应用程序以发送或发布到其窗口的消息形式接收与设备无关的输入,例如 WM_CHAR、WM_MOUSEMOVE 和 WM_APPCOMMAND。相反,对于原始输入,应用程序必须注册它想要从中获取数据的设备。此外,应用程序通过 WM_INPUT 消息获取原始输入。

原始输入模型有几个优点:

应用程序不必检测或打开输入设备。

应用程序直接从设备获取数据,并根据需要处理数据。

应用程序可以区分输入源,即使它来自同一类型的设备。例如,两个鼠标设备。

应用程序通过指定来自设备集合或仅特定设备类型的数据来管理数据流量。

HID 设备可以在市场上可用时使用,而无需等待新的消息类型或更新的操作系统在 WM_APPCOMMAND 中具有新命令。

最后,我在 Wacom 文档中看到了这条消息:6.2.5。WT_PROXIMITY 描述 当光标进入或离开上下文接近度时,WT_PROXIMITY 消息被发布到拥有窗口和任何管理器窗口。参数 描述 wParam 包含光标正在进入或离开的上下文句柄。lParam 光标进入上下文时低位词非零,离开上下文时低位词非零。当光标离开或进入硬件接近度时,高位字非零。

评论 Proximity 事件与常规平板电脑事件分开处理。即使应用程序没有请求事件消息,它们也会收到邻近消息。

似乎这条消息将被发送到所有管理器窗口,即使它不是焦点。祝你好运。

于 2014-12-27T04:50:48.170 回答