1

Win32_PointingDeviceクラスを使用して、システムに接続されているマウスを検出しています。タッチスクリーンを備えたマシンでデバイス検出スクリプトを実行しました。ディスカバリーは、直接接続されたUSBマウス、ワイヤレスマウス、タッチスクリーンの3つのポインティングデバイスで表示されます。私の質問は、タッチスクリーン付きのUSBマウスをどのように区別するかです。

Win32_PointingDeviceクラスが情報を提供しない場合、マウスとタッチの情報を取得するために使用できる他のメソッドはありますか。

これは、ワイヤレスマウスのWMIクラスでの以前の質問の拡張です。

4

2 に答える 2

2

Win32_PointingDevice.PointingType?

試したことはありませんが (タッチ スクリーンはありません)、Win32_PointingDeviceの MSDN ドキュメントには、タッチ スクリーンを示すために PointingType = 8 が使用されていると書かれています。

(ただし、私のマウスは「3」(「マウス」) ではなく「2」(「不明」) として表示されるため、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 に答える