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>
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!