none
Como mostrar todos dispositivos USB conectados ao computador? RRS feed

Respostas

  • Exemplo Windows forms com poucas modificações:

    using System;
    using System.Collections.Generic;
    using System.Windows.Forms;
    using System.Management;
    
    namespace ListandoDispositivosUSB
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
               
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                var usbDevices = GetUSBDevices();
                
                foreach (var usbDevice in usbDevices)
                {
                    ListViewItem itens = new ListViewItem(usbDevice.Description);
                    itens.SubItems.Add(usbDevice.PnpDeviceID);
                    itens.SubItems.Add(usbDevice.DeviceID);
                    listView1.Items.Add(itens);
                }
                
            }
            static List<USBDeviceInfo> GetUSBDevices()
        {
          List<USBDeviceInfo> devices = new List<USBDeviceInfo>();
    
          ManagementObjectCollection collection;
                
          using (var searcher = new ManagementObjectSearcher(@"Select * From Win32_USBHub"))
            collection = searcher.Get();      
    
          foreach (var device in collection)
          {
            devices.Add(new USBDeviceInfo(
            (string)device.GetPropertyValue("DeviceID"),
            (string)device.GetPropertyValue("PNPDeviceID"),
            (string)device.GetPropertyValue("Description")
            ));
          }
    
          collection.Dispose();
          return devices;
        }
      }
        class USBDeviceInfo
      {
        public USBDeviceInfo(string deviceID, string pnpDeviceID, string description)
        {
          this.DeviceID = deviceID;
          this.PnpDeviceID = pnpDeviceID;
          this.Description = description;
        }
        public string DeviceID { get; private set; }
        public string PnpDeviceID { get; private set; }
        public string Description { get; private set; }
      }
    }

    • Sugerido como Resposta Pablo Batista Cardoso quarta-feira, 26 de junho de 2013 12:44
    • Marcado como Resposta Marcos SJ sexta-feira, 2 de outubro de 2015 18:53
    terça-feira, 25 de junho de 2013 16:44

Todas as Respostas

  • Bom dia Guilherme...

    Olha esse código... Eu uso dessa forma.

    namespace ConsoleApplication1
    {
      using System;
      using System.Collections.Generic;
      using System.Management; // need to add System.Management to your project references.
    
      class Program
      {
        static void Main(string[] args)
        {
          var usbDevices = GetUSBDevices();
    
          foreach (var usbDevice in usbDevices)
          {
            Console.WriteLine("Device ID: {0}, PNP Device ID: {1}, Description: {2}",
                usbDevice.DeviceID, usbDevice.PnpDeviceID, usbDevice.Description);
          }
    
          Console.Read();
        }
    
        static List<USBDeviceInfo> GetUSBDevices()
        {
          List<USBDeviceInfo> devices = new List<USBDeviceInfo>();
    
          ManagementObjectCollection collection;
          using (var searcher = new ManagementObjectSearcher(@"Select * From Win32_USBHub"))
            collection = searcher.Get();      
    
          foreach (var device in collection)
          {
            devices.Add(new USBDeviceInfo(
            (string)device.GetPropertyValue("DeviceID"),
            (string)device.GetPropertyValue("PNPDeviceID"),
            (string)device.GetPropertyValue("Description")
            ));
          }
    
          collection.Dispose();
          return devices;
        }
      }
    
      class USBDeviceInfo
      {
        public USBDeviceInfo(string deviceID, string pnpDeviceID, string description)
        {
          this.DeviceID = deviceID;
          this.PnpDeviceID = pnpDeviceID;
          this.Description = description;
        }
        public string DeviceID { get; private set; }
        public string PnpDeviceID { get; private set; }
        public string Description { get; private set; }
      }
    }

    Para listar seria interessante um ListBox.


    Não esqueça de marcar o post como útil caso tenha te ajudado.

    terça-feira, 25 de junho de 2013 13:17
  • Mais você está usando em Console, eu quero em WindowsForm, sabe como formular isso no mesmo ?

    Poderia me mostrar o código para WindowsForm ?

    Obrigado..

    Att,

    Guilherme.

    terça-feira, 25 de junho de 2013 13:34
  • Exemplo Windows forms com poucas modificações:

    using System;
    using System.Collections.Generic;
    using System.Windows.Forms;
    using System.Management;
    
    namespace ListandoDispositivosUSB
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
               
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                var usbDevices = GetUSBDevices();
                
                foreach (var usbDevice in usbDevices)
                {
                    ListViewItem itens = new ListViewItem(usbDevice.Description);
                    itens.SubItems.Add(usbDevice.PnpDeviceID);
                    itens.SubItems.Add(usbDevice.DeviceID);
                    listView1.Items.Add(itens);
                }
                
            }
            static List<USBDeviceInfo> GetUSBDevices()
        {
          List<USBDeviceInfo> devices = new List<USBDeviceInfo>();
    
          ManagementObjectCollection collection;
                
          using (var searcher = new ManagementObjectSearcher(@"Select * From Win32_USBHub"))
            collection = searcher.Get();      
    
          foreach (var device in collection)
          {
            devices.Add(new USBDeviceInfo(
            (string)device.GetPropertyValue("DeviceID"),
            (string)device.GetPropertyValue("PNPDeviceID"),
            (string)device.GetPropertyValue("Description")
            ));
          }
    
          collection.Dispose();
          return devices;
        }
      }
        class USBDeviceInfo
      {
        public USBDeviceInfo(string deviceID, string pnpDeviceID, string description)
        {
          this.DeviceID = deviceID;
          this.PnpDeviceID = pnpDeviceID;
          this.Description = description;
        }
        public string DeviceID { get; private set; }
        public string PnpDeviceID { get; private set; }
        public string Description { get; private set; }
      }
    }

    • Sugerido como Resposta Pablo Batista Cardoso quarta-feira, 26 de junho de 2013 12:44
    • Marcado como Resposta Marcos SJ sexta-feira, 2 de outubro de 2015 18:53
    terça-feira, 25 de junho de 2013 16:44
  • Como colocar um LABEL para informar se existe dispositivos USB conectados ou não ?

    e como dar nome a certos tipos de dispositov.

    USB Root Hub = Dispositivo padrão.

    Ai ao invés de mostrar USB Root Hub na lista, vai aparecer Dispositivo padrão.

    é possível ?

    obrigado.

    preciso támbem de um IF para confirmar se tem dispositivos conectados ou não.

    valeu

    terça-feira, 25 de junho de 2013 18:17
  • Caso tenha conseguido a solução finalize sua Thread marcando a resposta

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    domingo, 28 de junho de 2015 15:30