存取 Windows 系統上已連接 USB 裝置的完整清單
高效率的硬體管理通常需要檢查連接的周邊設備並與之互動。 USB 裝置無所不在,經常需要程式存取來執行庫存、診斷或其他管理任務。 Windows 提供了多種檢索此資訊的方法;一種強大的方法是使用 Windows Management Instrumentation (WMI) 框架。
WMI 提供詳細的系統和硬體信息,包括已連接 USB 設備的完整圖片。 這需要將 System.Management
程式集合並到您的專案中。 以下 C# 程式碼範例示範如何擷取此資料:
<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>
此程式碼使用 ManagementObjectSearcher
和查詢「Select * From Win32_USBHub」來擷取所有 USB 集線器。 每個 ManagementObject
代表一個集線器,提供有關它和連接設備的詳細資訊。 程式碼迭代這些對象,為每個裝置提取 DeviceID
、PNPDeviceID
和 Description
。 產生的 USBDeviceInfo
物件為各種應用程式提供全面的數據,例如裝置管理或系統診斷。 這種 WMI 方法提供了一種強大且高效的方法,用於取得 Windows 環境中已連接 USB 裝置的完整清單。
以上是如何使用WMI獲取Windows中連接的USB設備的全面列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!