je jouer à propos WqlEventQuery en vue d'identifier un appareil branché USBdétecter les périphériques USB connectés à l'aide WqlEventQuery et retrive leurs informations descriptives
var query = new WqlEventQuery();
query.EventClassName = "__InstanceOperationEvent";
query.WithinInterval = new TimeSpan(0, 0, 2);
query.Condition = @"TargetInstance ISA 'Win32_USBControllerdevice'";
using (var watcher = new ManagementEventWatcher(query))
{
watcher.EventArrived += WatcherEvent;
watcher.Start();
... Wait condition ...
watcher.Stop();
}
alors j'ai essayé de rechercher des biens de l'appareil dans le gestionnaire d'événements veilleur
foreach (var mbo in e.NewEvent.Properties.Cast<PropertyData>().Where(i => i.Value != null && i.Value is ManagementBaseObject).Select(pdData => (ManagementBaseObject)pdData.Value).Where(mbo => mbo != null))
{
if (mbo.ClassPath.ClassName == "Win32_USBControllerDevice")
{
foreach (var prop in mbo.SystemProperties)
{
... look for the property content
}
}
}
mais je n'ai pas trouvé d'endroit où je pourrais extraire des informations sur le périphérique branché. Donc, quand je branche un téléphone sur le port USB. Je veux extraire l'information qui indique que c'est un téléphone d'un modèle particulier du producteur particulier et ainsi de suite. Est-ce que je vais dans le bon sens pour obtenir cette information? devrais-je essayer quelque chose de différent ou de plus efficace à cet égard?
Merci!