5

サイズ/容量、シリアル番号、モデル番号、ヘッド セクター、メーカー、そしておそらく SMART データなどのデータを取得しようとしています。

4

4 に答える 4

9

WMI 呼び出しを使用して、ハード ディスクに関する情報にアクセスできます。

//System.Management を使用する必要があります。& 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");
于 2008-10-24T10:17:48.447 に答える
3

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

Win32_DiskDrive クラスのメンバーの詳細については、以下を確認してください。

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

于 2008-10-24T10:21:49.237 に答える
2

最も簡単な方法は、WMI を使用して必要な情報を取得することです。MSDN のWin32___DiskDriveのドキュメントを参照してください。これには、さまざまな標準ドライブ プロパティが含まれています。また、MSStorageDriver_ATAPISmartData WMI クラスを使用することもできます。現時点ではドキュメントが見つかりませんが、探している SMART データがすべて含まれているはずです。すべてのドライブを列挙し、そのプロパティを取得するための基本的なサンプル コードを次に示します。

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();
}
于 2008-10-24T10:35:57.007 に答える
0

WMIを使用すると、必要な情報のほとんどを取得できます。WMI の概要については、こちらを参照してください。

于 2008-10-24T10:14:07.783 に答える