2009-11-19 20 views
1

J'utilise la classe Win32_PointingDevice pour détecter les souris connectées au système. J'ai couru mon script de découverte de périphérique sur une machine qui a l'écran tactile. La découverte se manifeste avec 3 dispositifs de pointage, une souris USB directement connectée, une souris sans fil et un écran tactile. Ma question est de savoir comment faire la distinction entre une souris USB avec écran tactile.WMI: Comment faire la différence entre la souris sans fil et l'écran tactile

Si la classe Win32_PointingDevice ne fournit pas d'informations, existe-t-il d'autres méthodes que je peux utiliser pour obtenir des informations sur la souris et le toucher.

Ceci est l'extension à ma question précédente à WMI Class for wireless mouse

Répondre

2

Win32_PointingDevice.PointingType?

N'a pas essayé (pas d'écran tactile), mais la documentation MSDN pour Win32_PointingDevice indique que PointingType = 8 est utilisé pour indiquer l'écran tactile. Cependant, ma souris apparaît comme "2" ("Inconnu") au lieu de "3" ("Souris") - cela dépend donc de la profondeur de vos pilotes d'écran tactile lorsqu'ils ont implémenté leur WMI propriétés ...)

0

peut-être que vous pouvez utiliser le crochet WH_MOUSE_LL/de WH_MOUSE pour obtenir des informations supplémentaires en fonction 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 
}