Peut-on s'abonner à un événement .NET ou Windows qui m'avertirait si une donnée vient d'arriver sur un des ports USB de mon PC ?
Sinon comment être à l'écoute des données qui arrivent sur les ports USB de la machine ?
Merci pour votre aide.
Ludovic SOEUR
Le namespace System.Management offre tout ce dont vous avez besoin, à condition de travailler pour Windows.
Par exemple, vous pouvez initialiser un écouteur USB de la façon suivante : oldUSBHandler=new EventArrivedEventHandler(USBEventArrived); WqlEventQuery q=new WqlEventQuery("__InstanceOperationEvent",new TimeSpan(0,0,1),@"TargetInstance ISA 'Win32_USBControllerDevice'"); USBWatcher=new ManagementEventWatcher(q); USBWatcher.EventArrived+=oldUSBHandler; USBWatcher.Start(); Et ne pas oublier de faire hériter votre classe de Component afin de mettre dans la fonction Dispose les lignes permettant d'arrêter l'écouteur : if (USBWatcher!=null) { try {USBWatcher.Stop();} catch {} USBWatcher.EventArrived-=oldUSBHandler; USBWatcher.Dispose(); USBWatcher=null; } Avec pour définition bien sur : private EventArrivedEventHandler oldUSBHandler; private ManagementEventWatcher USBWatcher;
Enfin l'écouteur aurait par exemple la forme suivante : private void USBEventArrived(object sender, EventArrivedEventArgs e) { switch(e.NewEvent.ClassPath.ClassName) { case "__InstanceCreationEvent" : { //***** //Votre code //***** } break; case "__InstanceDeletionEvent" : { //***** //Votre code //***** } break; case ........ : { //***** //Votre code //***** } break; } }
Bon courage dans la découverte de ce namespace et de Wql.
Cordialement,
Ludovic SOEUR.
"ShadowFil" a écrit dans le message de news:
Bonjour,
Peut-on s'abonner à un événement .NET ou Windows qui m'avertirait si une donnée vient d'arriver sur un des ports USB de mon PC ?
Sinon comment être à l'écoute des données qui arrivent sur les ports USB
de
la machine ?
Merci pour votre aide.
Le namespace System.Management offre tout ce dont vous avez besoin, à
condition de travailler pour Windows.
Par exemple, vous pouvez initialiser un écouteur USB de la façon suivante :
oldUSBHandler=new EventArrivedEventHandler(USBEventArrived);
WqlEventQuery q=new WqlEventQuery("__InstanceOperationEvent",new
TimeSpan(0,0,1),@"TargetInstance ISA 'Win32_USBControllerDevice'");
USBWatcher=new ManagementEventWatcher(q);
USBWatcher.EventArrived+=oldUSBHandler;
USBWatcher.Start();
Et ne pas oublier de faire hériter votre classe de Component afin de mettre
dans la fonction Dispose les lignes permettant d'arrêter l'écouteur :
if (USBWatcher!=null) {
try {USBWatcher.Stop();} catch {}
USBWatcher.EventArrived-=oldUSBHandler;
USBWatcher.Dispose();
USBWatcher=null;
}
Avec pour définition bien sur :
private EventArrivedEventHandler oldUSBHandler;
private ManagementEventWatcher USBWatcher;
Enfin l'écouteur aurait par exemple la forme suivante :
private void USBEventArrived(object sender, EventArrivedEventArgs e) {
switch(e.NewEvent.ClassPath.ClassName) {
case "__InstanceCreationEvent" : {
//*****
//Votre code
//*****
} break;
case "__InstanceDeletionEvent" : {
//*****
//Votre code
//*****
} break;
case ........ : {
//*****
//Votre code
//*****
} break;
}
}
Bon courage dans la découverte de ce namespace et de Wql.
Cordialement,
Ludovic SOEUR.
"ShadowFil" <ShadowFil@discussions.microsoft.com> a écrit dans le message de
news:E64F1765-08B5-435E-BA85-51E67654DF59@microsoft.com...
Bonjour,
Peut-on s'abonner à un événement .NET ou Windows qui m'avertirait si une
donnée vient d'arriver sur un des ports USB de mon PC ?
Sinon comment être à l'écoute des données qui arrivent sur les ports USB
Le namespace System.Management offre tout ce dont vous avez besoin, à condition de travailler pour Windows.
Par exemple, vous pouvez initialiser un écouteur USB de la façon suivante : oldUSBHandler=new EventArrivedEventHandler(USBEventArrived); WqlEventQuery q=new WqlEventQuery("__InstanceOperationEvent",new TimeSpan(0,0,1),@"TargetInstance ISA 'Win32_USBControllerDevice'"); USBWatcher=new ManagementEventWatcher(q); USBWatcher.EventArrived+=oldUSBHandler; USBWatcher.Start(); Et ne pas oublier de faire hériter votre classe de Component afin de mettre dans la fonction Dispose les lignes permettant d'arrêter l'écouteur : if (USBWatcher!=null) { try {USBWatcher.Stop();} catch {} USBWatcher.EventArrived-=oldUSBHandler; USBWatcher.Dispose(); USBWatcher=null; } Avec pour définition bien sur : private EventArrivedEventHandler oldUSBHandler; private ManagementEventWatcher USBWatcher;
Enfin l'écouteur aurait par exemple la forme suivante : private void USBEventArrived(object sender, EventArrivedEventArgs e) { switch(e.NewEvent.ClassPath.ClassName) { case "__InstanceCreationEvent" : { //***** //Votre code //***** } break; case "__InstanceDeletionEvent" : { //***** //Votre code //***** } break; case ........ : { //***** //Votre code //***** } break; } }
Bon courage dans la découverte de ce namespace et de Wql.
Cordialement,
Ludovic SOEUR.
"ShadowFil" a écrit dans le message de news:
Bonjour,
Peut-on s'abonner à un événement .NET ou Windows qui m'avertirait si une donnée vient d'arriver sur un des ports USB de mon PC ?
Sinon comment être à l'écoute des données qui arrivent sur les ports USB