Services C# et Windows : surveillance des connexions de clé USB
L'automatisation du démarrage et de l'arrêt des applications en fonction de l'insertion et du retrait d'une clé USB est précieuse pour les systèmes distribués. Cet article explore des méthodes efficaces pour réaliser cette fonctionnalité au sein d'un service Windows C#.
Stratégies de mise en œuvre C#
Une solution robuste utilise Windows Management Instrumentation (WMI), un outil puissant pour la surveillance du système et la gestion des événements. WMI permet d'interroger les événements liés aux modifications de périphérique. Un exemple concis de C# WMI :
<code class="language-csharp">using System.Management; ManagementEventWatcher watcher = new ManagementEventWatcher(); WqlEventQuery query = new WqlEventQuery("SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2"); watcher.EventArrived += new EventArrivedEventHandler(watcher_EventArrived); watcher.Query = query; watcher.Start(); watcher.WaitForNextEvent();</code>
Le gestionnaire d'événements EventArrived
est déclenché lors de l'insertion ou du retrait d'une clé USB, fournissant des détails sur l'événement et le lecteur concerné. Cette approche WMI est nettement plus fiable que l'utilisation de WndProc
dans un contexte de service.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!