我开发了一个系统激活.为了生成请求代码,我使用了HDD ID,Bios ID和Processor ID.我使用以下代码来获取硬盘ID.
private string getHardDiskID()
{
string hddID = null;
ManagementClass mc = new ManagementClass("Win32_LogicalDisk");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject strt in moc)
{
hddID += Convert.ToString(strt["VolumeSerialNumber"]);
}
return hddID.Trim().ToString();
}
但是,如果我插入可移动磁盘,则该ID值会发生变化.如何获得硬盘驱动器的唯一序列号…?
提前致谢..
最佳答案 你可以试试这个
source:
如源中所述,更好的解决方案是获取制造商提供的硬盘序列号.即使您格式化硬盘驱动器,此值也不会更改.
searcher = new
ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
int i = 0;
foreach(ManagementObject wmi_HD in searcher.Get())
{
// get the hard drive from collection
// using index
HardDrive hd = (HardDrive)hdCollection[i];
// get the hardware serial no.
if (wmi_HD["SerialNumber"] == null)
hd.SerialNo = "None";
else
hd.SerialNo = wmi_HD["SerialNumber"].ToString();
++i;
}