Estoy tratando de hacer una función que detecta si el dispositivo usb está conectado dado que los dispositivos pid y vid. Tengo la esperanza de que sería algo parecido a esto, es solo que no estoy seguro de cómo hacer esto en C#.

public bool IsUsbDeviceConnected(string pid, string vid)
{
  //Code here
}
Por favor, edita tu pregunta; la adición de los siguientes puntos pueden obtener mejores respuestas: 1. ¿Qué has intentado hasta ahora? 2. ¿Qué resultados obtuviste? 3. ¿Cómo que difieren de los resultados que esperabas?

OriginalEl autor Robert | 2010-09-10

2 Comentarios

  1. 5
    //using System.Management
    public bool IsUsbDeviceConnected(string pid, string vid)
    {   
      using (var searcher = 
        new ManagementObjectSearcher(@"Select * From Win32_USBControllerDevice"))
      {
        using (var collection = searcher.Get())
        {
          foreach (var device in collection)
          {
            var usbDevice = Convert.ToString(device);
    
            if (usbDevice.Contains(pid) && usbDevice.Contains(vid))
              return true;
          }
        }
      }
      return false;
    }
    Puede usted por favor me ayudan con este relacionado con la pregunta?

    OriginalEl autor Robert

  2. 3

    puede ser algo como

    //import the System.Management namespace at the top in your "using" statement. Then in a method, or on a button click:
    
    ManagementObjectCollection collection;
    using (ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE InterfaceType='USB'"))
      collection = searcher.Get();
    foreach (ManagementObject currentObject in collection)
    {
      ManagementObject theSerialNumberObjectQuery = new ManagementObject("Win32_PhysicalMedia.Tag='" + currentObject["DeviceID"] + "'");
      MessageBox.Show(theSerialNumberObjectQuery["SerialNumber"].ToString());
    }
    collection.Dispose();

    Mediante WMI

    No tengo un número de serie, sólo el vendor id y el id de producto que está anidada en algún lugar en el usb. También que la llamada de WMI busca Win32_DiskDrives, no todos los dispositivos USB.

    OriginalEl autor Dan H

Dejar respuesta

Please enter your comment!
Please enter your name here