using c # comment puis-je extraire des informations sur les disques durs présents sur la machine locale
-
04-07-2019 - |
Question
Je souhaite obtenir des données telles que Taille / Capacité, Numéro de série, Numéro de modèle, Secteur des têtes, Fabricant et éventuellement des données SMART.
La solution
Vous pouvez utiliser les appels WMI pour accéder aux informations sur les disques durs.
// Nécessite l'utilisation de System.Management; & amp; Référence System.Management.dll
ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\"");
disk.Get();
Console.WriteLine("Logical Disk Size = " + disk["Size"] + " bytes");
Console.WriteLine("Logical Disk FreeSpace = " + disk["FreeSpace"] + "bytes");
Autres conseils
Vous devez utiliser l'espace de noms System.Management :
System.Management.ManagementObjectSearcher ms =
new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject mo in ms.Get())
{
System.Console.Write(mo["Model");
}
Pour plus d'informations sur les membres de la classe Win32_DiskDrive, consultez:
http://msdn.microsoft.com/ en-us / library / aa394132 (VS.85) .aspx
Le moyen le plus simple consiste à utiliser WMI pour obtenir les informations requises. Consultez la documentation de Win32___DiskDrive dans MSDN, qui contient diverses propriétés de lecteur standard. Vous pouvez également essayer d'utiliser la classe WMI MSStorageDriver_ATAPISmartData, pour laquelle je ne trouve aucun document pour le moment, mais qui devrait contenir toutes les données SMART que vous recherchez. Voici un exemple de code de base pour énumérer tous les lecteurs et obtenir leurs propriétés:
ManagementClass driveClass = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection drives = driveClass.GetInstances();
foreach (ManagementObject drive in drives)
{
foreach (PropertyData property in drive.Properties)
{
Console.WriteLine("Property: {0}, Value: {1}", property.Name, property.Value);
}
Console.WriteLine();
}