一般电脑包含多个磁盘,这里只获取第一个磁盘,
如果要获取多个,只需要遍历获取即可.
先通过 ManagementClass 类,获取Win32_DiskDrive 信息,再通过 ManagementObject 类遍历,获取 Model 值
/// <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;//这名话解决有多个物理盘时产生的问题,只取第一个物理硬盘
}
return HDid;
}
运行结果: