Maison > développement back-end > C++ > Comment puis-je détecter l'insertion et le retrait d'une clé USB à l'aide d'un service Windows C# ?

Comment puis-je détecter l'insertion et le retrait d'une clé USB à l'aide d'un service Windows C# ?

Mary-Kate Olsen
Libérer: 2025-01-14 08:51:47
original
992 Les gens l'ont consulté

How Can I Detect USB Drive Insertion and Removal Using a C# Windows Service?

Surveillance de l'activité de la clé USB dans un service Windows C#

Cet article explique comment créer un service Windows C# qui détecte de manière fiable les événements d'insertion et de suppression de clé USB. Ceci est crucial pour les applications conçues pour se lancer automatiquement lors de la connexion du disque et se fermer lorsque le disque est déconnecté.

Mise en œuvre de la détection d'événements USB

La méthode la plus efficace pour suivre ces événements consiste à utiliser Windows Management Instrumentation (WMI). WMI fournit une interface robuste pour interagir avec les ressources système, ce qui le rend idéal pour cette tâche.

Solution basée sur WMI

Vous trouverez ci-dessous un exemple simplifié illustrant l'application de WMI pour détecter l'insertion et le retrait d'une clé USB :

<code class="language-csharp">using System.Management;

// Initialize WMI event watcher
ManagementEventWatcher watcher = new ManagementEventWatcher();

// Define the WQL query for volume change events (EventType = 2 signifies insertion/removal)
WqlEventQuery query = new WqlEventQuery("SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2");

// Assign the query to the watcher
watcher.Query = query;

// Specify the event handler
watcher.EventArrived += watcher_EventArrived;

// Start monitoring
watcher.Start();

// Wait for events
watcher.WaitForNextEvent();


// Event handler to process drive insertion/removal events
private void watcher_EventArrived(object sender, EventArrivedEventArgs e)
{
    // Process the event data (e.NewEvent) to determine which drive was affected and whether it was inserted or removed.
    // ... your code to handle the event ...
}</code>
Copier après la connexion

Ce code configure un observateur d'événements WMI pour écouter les événements Win32_VolumeChangeEventEventType vaut 2. Le gestionnaire d'événements watcher_EventArrived est déclenché lorsqu'un lecteur est inséré ou retiré, vous permettant de traiter les détails de l'événement (disponible dans e.NewEvent). Vous devrez ajouter votre logique dans la méthode watcher_EventArrived pour déterminer le lecteur spécifique et le type d'événement (insertion ou suppression).

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal