【问题标题】:WMI: How to differentiate between Wireless mouse and touch screenWMI:如何区分无线鼠标和触摸屏
【发布时间】:2009-11-19 16:33:23
【问题描述】:

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

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

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

【问题讨论】:

    标签: windows hardware wmi device hardware-interface


    【解决方案1】:

    Win32_PointingDevice.PointingType?

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

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

    【讨论】:

      【解决方案2】:

      也许您可以使用 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
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-13
        相关资源
        最近更新 更多