Automatisation du comportement des applications avec l'insertion/le retrait d'une clé USB : une solution C# et WMI
Besoin de démarrer et d'arrêter automatiquement une application lorsqu'une clé USB est insérée ou retirée ? Ce guide montre comment y parvenir à l'aide de C# et de Windows Management Instrumentation (WMI).
Détection des modifications de la clé USB
Il existe plusieurs méthodes pour détecter les événements de clé USB en C#, notamment l'utilisation de WndProc
pour intercepter les messages Windows. Cependant, WMI propose une approche plus simple et plus robuste, notamment dans un contexte de service.
Mise en œuvre de WMI : un exemple pratique
L'extrait de code suivant illustre comment utiliser WMI pour surveiller les événements d'insertion de clé USB :
<code class="language-csharp">using System.Management; // Create a WMI event watcher ManagementEventWatcher watcher = new ManagementEventWatcher(); // Define the WQL query to monitor volume change events (EventType 2 indicates insertion) WqlEventQuery query = new WqlEventQuery("SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2"); // Assign the event handler watcher.EventArrived += watcher_EventArrived; // Set the query for the watcher watcher.Query = query; // Start the watcher watcher.Start(); // Wait for the next event (this can be adapted for continuous monitoring) watcher.WaitForNextEvent(); private void watcher_EventArrived(object sender, EventArrivedEventArgs e) { // Handle USB drive insertion event here }</code>
La méthode watcher_EventArrived
sera déclenchée lorsqu'une clé USB est insérée. Une logique similaire, en modifiant le EventType
dans la requête (EventType 3 représente la suppression), peut être utilisée pour détecter la suppression de la clé USB.
Résumé
Cette combinaison de C# et WMI fournit une méthode fiable et efficace pour créer un service Windows qui répond automatiquement à l'insertion et au retrait d'une clé USB. Cette fonctionnalité est très précieuse pour divers scénarios d'application nécessitant un comportement dynamique basé sur la présence d'une clé USB.
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!