public static string GetCPUSerialNumber()
        {
            string cpuSerialNumber = string.Empty;
            ManagementClass mc = new ManagementClass("Win32_Processor");
            ManagementObjectCollection moc = mc.GetInstances();
            foreach (ManagementObject mo in moc)
            {
                cpuSerialNumber = mo["ProcessorId"].ToString();
                break;
            }
            mc.Dispose();
            moc.Dispose();
            return cpuSerialNumber;
        }

解决方案 »

  1.   

    重装系统不会改变硬件
    除非更换CPU
      

  2.   

    CPU的序列号只有部分Intel Pentium III有,而且因为饱受非议,所以几乎所有的主板BIOS都默认将它关闭。目前的计算机都取不到。
      

  3.   

    可能会改变,通过WMI获取的CPU序列号是读取 安装系统的时候写入到注册表内的值,所以如果他用ghost这样的工具做系统,可能你用WMI无法获取到真实的地址,如果他老老实实自己安装的操作系统,那么WMI读取的序列号就是真的。