我使用Win32_PointingDevice类来检测连接到系统的鼠标。我在有触摸屏的机器上运行我的设备发现脚本。该发现显示了3个定位设备,直接连接的USB鼠标,无线鼠标和触摸屏。我的问题是如何区分带触摸屏的USB鼠标。WMI:如何区分无线鼠标和触摸屏
如果Win32_PointingDevice类不提供信息,那么是否还有其他方法可用于获取鼠标和触摸信息。
这是扩展我刚才的问题在WMI Class for wireless mouse
我使用Win32_PointingDevice类来检测连接到系统的鼠标。我在有触摸屏的机器上运行我的设备发现脚本。该发现显示了3个定位设备,直接连接的USB鼠标,无线鼠标和触摸屏。我的问题是如何区分带触摸屏的USB鼠标。WMI:如何区分无线鼠标和触摸屏
如果Win32_PointingDevice类不提供信息,那么是否还有其他方法可用于获取鼠标和触摸信息。
这是扩展我刚才的问题在WMI Class for wireless mouse
Win32_PointingDevice.PointingType?
还没有尝试过(没有触摸屏),但是Win32_PointingDevice的MSDN文档说PointingType = 8用于指示触摸屏。 (但是,我的鼠标显示为“2”(“未知”)而不是“3”(“鼠标”) - 因此它可能取决于您的触摸屏驱动程序编写者在实现其WMI属性...)
也许你可以使用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
}