Maison > développement back-end > C++ > Comment obtenir une liste complète des périphériques USB connectés sous Windows à l'aide de WMI ?

Comment obtenir une liste complète des périphériques USB connectés sous Windows à l'aide de WMI ?

DDD
Libérer: 2025-01-25 00:37:09
original
589 Les gens l'ont consulté

How Do I Get a Comprehensive List of Connected USB Devices in Windows Using WMI?

Accès à une liste complète des périphériques USB connectés sur les systèmes Windows

Une gestion efficace du matériel nécessite souvent d’inspecter et d’interagir avec les périphériques connectés. Les périphériques USB, étant omniprésents, nécessitent fréquemment un accès par programme pour l'inventaire, les diagnostics ou d'autres tâches administratives. Windows propose plusieurs méthodes pour récupérer ces informations ; une approche puissante consiste à utiliser le framework Windows Management Instrumentation (WMI).

WMI fournit des informations détaillées sur le système et le matériel, y compris une image complète des périphériques USB connectés. Cela nécessite d'incorporer l'assembly System.Management dans votre projet. L'exemple de code C# suivant montre comment récupérer ces données :

<code class="language-csharp">using System;
using System.Collections.Generic;
using System.Management; // Requires adding System.Management to project references

namespace USBDeviceEnumeration
{
    class Program
    {
        static void Main(string[] args)
        {
            List<USBDeviceInfo> usbDevices = GetUSBDevices();

            foreach (USBDeviceInfo device in usbDevices)
            {
                Console.WriteLine($"Device ID: {device.DeviceID}, PNP Device ID: {device.PnpDeviceID}, Description: {device.Description}");
            }

            Console.ReadKey();
        }

        static List<USBDeviceInfo> GetUSBDevices()
        {
            List<USBDeviceInfo> devices = new List<USBDeviceInfo>();

            using (ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_USBHub"))
            using (ManagementObjectCollection collection = searcher.Get())
            {
                foreach (ManagementObject device in collection)
                {
                    devices.Add(new USBDeviceInfo(
                        (string)device.GetPropertyValue("DeviceID"),
                        (string)device.GetPropertyValue("PNPDeviceID"),
                        (string)device.GetPropertyValue("Description")
                    ));
                }
            }
            return devices;
        }
    }

    class USBDeviceInfo
    {
        public USBDeviceInfo(string deviceID, string pnpDeviceID, string description)
        {
            DeviceID = deviceID;
            PnpDeviceID = pnpDeviceID;
            Description = description;
        }
        public string DeviceID { get; private set; }
        public string PnpDeviceID { get; private set; }
        public string Description { get; private set; }
    }
}</code>
Copier après la connexion

Ce code utilise un ManagementObjectSearcher avec la requête "Select * From Win32_USBHub" pour récupérer tous les hubs USB. Chaque ManagementObject représente un hub, fournissant des détails sur celui-ci et les appareils connectés. Le code parcourt ces objets, extrayant les DeviceID, PNPDeviceID et Description pour chaque appareil. Les USBDeviceInfo objets résultants offrent des données complètes pour diverses applications, telles que la gestion des appareils ou le diagnostic du système. Cette approche WMI fournit une méthode robuste et efficace pour obtenir une liste complète des périphériques USB connectés dans un environnement Windows.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal