WMI:如何区分无线鼠标和触摸屏

时间:2009-11-19 16:33:24

标签: windows hardware wmi device hardware-interface

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

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

这是我在WMI Class for wireless mouse

上的上一个问题的扩展

2 个答案:

答案 0 :(得分:2)

Win32_PointingDevice.PointingType?

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

(但是,我的鼠标显示为“2”(“未知”)而不是“3”(“鼠标”) - 所以它可能取决于触摸屏驱动程序编写者实现其WMI属性时的彻底程度...)

答案 1 :(得分: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
}