Heim > Backend-Entwicklung > C++ > Wie erhalte ich eine umfassende Liste mit verbundenen USB -Geräten in Windows mit WMI?

Wie erhalte ich eine umfassende Liste mit verbundenen USB -Geräten in Windows mit WMI?

DDD
Freigeben: 2025-01-25 00:37:09
Original
589 Leute haben es durchsucht

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

Zugriff auf eine umfassende Liste angeschlossener USB-Geräte auf Windows-Systemen

Effizientes Hardwaremanagement erfordert häufig die Überprüfung und Interaktion mit angeschlossenen Peripheriegeräten. Da USB-Geräte allgegenwärtig sind, benötigen sie häufig einen programmgesteuerten Zugriff für Inventarisierungs-, Diagnose- oder andere Verwaltungsaufgaben. Windows bietet verschiedene Methoden zum Abrufen dieser Informationen. Ein leistungsstarker Ansatz ist die Verwendung des Windows Management Instrumentation (WMI)-Frameworks.

WMI bietet detaillierte System- und Hardwareinformationen, einschließlich eines vollständigen Bildes der angeschlossenen USB-Geräte. Dazu müssen Sie die System.Management-Assembly in Ihr Projekt integrieren. Das folgende C#-Codebeispiel zeigt, wie diese Daten abgerufen werden:

<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>
Nach dem Login kopieren

Dieser Code verwendet ein ManagementObjectSearcher mit der Abfrage „Select * From Win32_USBHub“, um alle USB-Hubs abzurufen. Jedes ManagementObject stellt einen Hub dar und liefert Details über ihn und angeschlossene Geräte. Der Code durchläuft diese Objekte und extrahiert die DeviceID, PNPDeviceID und Description für jedes Gerät. Die resultierenden USBDeviceInfo-Objekte bieten umfassende Daten für verschiedene Anwendungen, wie zum Beispiel Gerätemanagement oder Systemdiagnose. Dieser WMI-Ansatz bietet eine robuste und effiziente Methode zum Abrufen einer vollständigen Liste der angeschlossenen USB-Geräte in einer Windows-Umgebung.

Das obige ist der detaillierte Inhalt vonWie erhalte ich eine umfassende Liste mit verbundenen USB -Geräten in Windows mit WMI?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage