usando c # come posso estrarre informazioni sui dischi rigidi presenti sul computer locale

StackOverflow https://stackoverflow.com/questions/232979

  •  04-07-2019
  •  | 
  •  

Domanda

Sto cercando di ottenere dati come dimensione / capacità, numero di serie, numero di modello, settori di testa, produttore e possibilmente dati SMART.

È stato utile?

Soluzione

È possibile utilizzare Chiamate WMI per accedere alle informazioni sui dischi rigidi.

// Richiede l'utilizzo di System.Management; & Amp; Riferimento 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");

Altri suggerimenti

È necessario utilizzare lo spazio dei nomi 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");
}

Per dettagli sui membri della classe Win32_DiskDrive, controlla:

http://msdn.microsoft.com/ it-it / library / aa394132 (VS.85) aspx

Il modo più semplice è utilizzare WMI per ottenere le informazioni richieste. Dai un'occhiata alla documentazione per Win32___DiskDrive in MSDN, che contiene una varietà di proprietà standard dell'unità. Puoi anche provare a utilizzare la classe WMI MSStorageDriver_ATAPISmartData, che al momento non trovo alcun documento, ma che dovrebbe avere tutti i dati SMART che stai cercando. Ecco alcuni esempi di codice di base per enumerare tutte le unità e ottenere le loro proprietà:

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();
}

Puoi utilizzare WMI per ottenere la maggior parte delle informazioni che desideri, e c'è un'introduzione a WMI qui .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top