[How To] Detectar dispositivos USB con C#
En ocasiones necesitamos detectar los dispositivos que estamos conectando a la PC, es por eso que les comparto una muy buena opción para detectar las nuevas conexiones de dispositivos USB.Simplemente utilizamos la clase ManagementEventWatcher y procesamos la consulta tal como se muestra en el ejemplo:
No olvidar agregar el espacio de nombres:
using System.Management;
ManagementEventWatcher watcher = new ManagementEventWatcher(); WqlEventQuery consulta = new WqlEventQuery("SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2"); watcher.EventArrived += new EventArrivedEventHandler(watcher_EventArrived); watcher.Query = consulta; watcher.Start(); watcher.WaitForNextEvent();El manejador de eventos quedaría así:
private void watcher_EventArrived(object sender, EventArrivedEventArgs e) { //Realizar aquí la acción necesaria }Si necesitamos obtener la letra que el Sistema Operativo designó al dispositivo podemos utilizar esta simple línea de código:
//Dentro del evento watcher_EventArrived e.NewEvent.Properties["DriveName"].Value.ToString();De esta manera podemos detectar cambios realizados en el sistema operativo, detectando cambios al conectar los dispositivos externos.