100 votes

Obtenir la liste des périphériques USB connectés

Comment puis-je obtenir une liste de tous les périphériques USB connectés sur un ordinateur Windows ?

5voto

Baddack Points 24

Il s'agit d'un exemple beaucoup plus simple pour les personnes qui ne recherchent que des lecteurs usb amovibles.

using System.IO;

foreach (DriveInfo drive in DriveInfo.GetDrives())
{
    if (drive.DriveType == DriveType.Removable)
    {
        Console.WriteLine(string.Format("({0}) {1}", drive.Name.Replace("\\",""), drive.VolumeLabel));
    }
}

2voto

Darin Dimitrov Points 528142

Vous pouvez trouver ce fil utile. Et voici un projet code google à titre d'exemple (il P/Invoque dans setupapi.dll ).

0 votes

Avez-vous une idée de la raison pour laquelle la classe ObjectQuery n'a pas de référence alors que j'utilise System.Management ?

0 votes

@Robert avez-vous ajouté la référence au projet ? Vous pouvez le faire en faisant un clic droit sur Références dans votre projet > Ajouter une référence... > Rechercher et cocher System.Management > OK.

0voto

JxDarkAngel Points 1
  lstResult.Clear();
  foreach (ManagementObject drive in new ManagementObjectSearcher("select * from Win32_DiskDrive where InterfaceType='USB'").Get())
  {
       foreach (ManagementObject partition in new ManagementObjectSearcher("ASSOCIATORS OF {Win32_DiskDrive.DeviceID='" + drive["DeviceID"] + "'} WHERE AssocClass = Win32_DiskDriveToDiskPartition").Get())
       {
            foreach (ManagementObject disk in new ManagementObjectSearcher("ASSOCIATORS OF {Win32_DiskPartition.DeviceID='" + partition["DeviceID"] + "'} WHERE AssocClass = Win32_LogicalDiskToPartition").Get())
            {
                  foreach (var item in disk.Properties)
                  {
                       object value = disk.GetPropertyValue(item.Name);
                  }
                  string valor = disk["Name"].ToString();
                  lstResult.Add(valor);
                  }
             }
        }
   }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X