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