C#を使用して、ローカルマシンに存在するハードドライブに関する情報をどのように抽出できますか
-
04-07-2019 - |
質問
サイズ/容量、シリアル番号、モデル番号、Heads Sectors、Manufacturer、および場合によってはSMARTデータなどのデータを取得しようとしています。
解決
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");
他のヒント
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
最も簡単な方法は、WMIを使用して必要な情報を取得することです。 Win32___DiskDrive のドキュメントをご覧ください。 MSDN。さまざまな標準ドライブプロパティが含まれています。また、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();
}
所属していません StackOverflow