1

我正在使用 Win32_PointingDevice 类来检测连接到系统的鼠标。我在一台有触摸屏的机器上运行我的设备发现脚本。该发现显示了 3 个指点设备,直接连接的 USB 鼠标、无线鼠标和触摸屏。我的问题是如何区分USB鼠标和触摸屏。

如果 Win32_PointingDevice 类不提供信息,那么我可以使用任何其他方法来获取鼠标和触摸信息。

这是我在WMI Class for wireless mouse上一个问题的扩展

4

2 回答 2

2

Win32_PointingDevice.PointingType?

没试过(没有触摸屏),但是Win32_PointingDevice的 MSDN 文档说 PointingType = 8 用于指示触摸屏。

(但是,我的鼠标显示为“2”(“未知”)而不是“3”(“鼠标”)——因此这可能取决于您的触摸屏驱动程序编写者在实现其 WMI 属性时有多彻底...... )

于 2010-01-06T22:06:32.383 回答
0

也许您可以使用 WH_MOUSE_LL / WH_MOUSE 钩子通过函数GetMessageExtraInfo()获取额外信息

#define MI_WP_SIGNATURE 0xFF515700
#define SIGNATURE_MASK 0xFFFFFF00
#define IsPenEvent(dw) (((dw) & SIGNATURE_MASK) == MI_WP_SIGNATURE)
#define IsTouchEvent(dw) (((dw) & 0x80) == 0x80)

if(IsPenEvent(GetMessageExtraInfo()) && IsTOuchEvent(GetMessageExtraInfo())) {
// do somthing
}
于 2010-05-25T05:45:14.693 回答