程序咋写的?通过ManagementClass读取的吗?

解决方案 »

  1.   

      当取不到硬盘序列号时,就取主板或者CPU的吧。。
      

  2.   

            [DllImport("Kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
            private extern static bool GetVolumeInformation(
                string RootPathName,
                StringBuilder VolumeNamebuffer,
                int VolumeNameSize,
                out uint VolumeSerialNumber,
                out uint MaximumComponentLength,
                out uint FileSystemFlags,
                StringBuilder FileSystemNameBuffer,
                int nFileSystemNameSize);
      

  3.   

    private string GetDisID()
    {
    try
    {
    string HDid="";
    ManagementClass mc=new ManagementClass("Win32_DiskDrive");
    ManagementObjectCollection moc=mc.GetInstances();
    foreach (ManagementObject mo in moc) 

    HDid = (string)mo.Properties["Model"].Value; 

    moc = null; 
    mc = null; 
    return HDid;  }
    catch
    {
    return "";
    }
    finally
    {

    }
    }