如何在C#中获取硬盘唯一的序列号

Jay*_*Naz 6 c#

我开发了一个系统的激活。为了生成请求代码,我使用了 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();
}
Run Code Online (Sandbox Code Playgroud)

但是如果我插入一个可移动磁盘,那个 ID 值就会改变。如何获得硬盘的唯一序列号...?提前致谢..

Rah*_*thi 3

您可以尝试从此来源

正如源中所述,更好的解决方案是获取制造商提供的硬盘序列号。即使您格式化硬盘,该值也不会改变。

 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;
   }
Run Code Online (Sandbox Code Playgroud)

  • 硬盘的参考号是什么 (3认同)