获得硬盘 , 如果有两块也一并列出.
/// <summary>
/// 获取硬盘序列号
/// </summary>
public string GetDiskSerialNumber()
{
//这种模式在插入一个U盘后可能会有不同的结果,如插入我的手机时
String HDid = "";
ManagementClass mc = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
HDid = (string)mo.Properties["Model"].Value;//SerialNumber
break;//这名话解决有多个物理盘时产生的问题,只取第一个物理硬盘
}
ManagementObjectSearcher mydisks = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject mydisk in mydisks.Get())
{
string HDID = mydisk["Model"].ToString();
string HD1 = ( Convert.ToInt64(mydisk["Size"] )/1024/1024/1024).ToString();
Console.WriteLine( string.Format( "Hdid = {0} , hd1 = {1} ",HDID ,HD1)); //Hdid = ATA KINGSTON SA400S3 SCSI Disk Device , hd1 = 447
// Hdid = ATA ST1000DM003 - 1ER1 SCSI Disk Device, hd1 = 931
}
return HDid;
/*ManagementClass mc = new ManagementClass("Win32_PhysicalMedia");
ManagementObjectCollection moc = mc.GetInstances();
string str = "";
foreach (ManagementObject mo in moc)
{
str = mo.Properties["SerialNumber"].Value.ToString();
break;
}
return str;*/
}