主板的SerialNumber
ManagementObjectSearcher MOS = new ManagementObjectSearcher("Select * From Win32_BaseBoard");
            foreach (ManagementObject getserial in MOS.Get())
            {
                Console.WriteLine(getserial["SerialNumber"].ToString());
            }
  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/

解决方案 »

  1.   

    主板信息+硬盘信息+Cpu信息+内存信息生成一个Key就可以了
    貌似杀软不能过。(有程序正在读取您的设备信息)
      

  2.   

    主板、cpu、网卡、硬盘都是唯一标识
      

  3.   

     public string GetCPUSerialNo()
            {
                string cpuSerialNo = string.Empty;
                ManagementClass managementClass = new ManagementClass("Win32_Processor");
                foreach (ManagementObject managementObject in managementClass.GetInstances())
                {
                    // 可能是有多个
                    cpuSerialNo = managementObject.Properties["ProcessorId"].Value.ToString();
                    break;
                }
                return cpuSerialNo;
            }
    获取CPU序列号
      

  4.   

    CPU不一定有序列号;取主板的序列号应是最优的,不知道1楼的代码能用在哪些系统 以及需不需要管理员权限?
    综合读取各种硬件信息,如果变动量不超过某个值,就可以认为是同一台机。
      

  5.   

    CPU 的号,有的可以,有的也是空.可能是以前的老 CPU 或者赛扬系列没有号.
    网卡地址\硬盘号没有问题.-------------------------------------
    //获取主板序列号
    public string GetBIOSSerialNumber() 
    {
    try
    {
    ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_BIOS");string  sBIOSSerialNumber = "";
    foreach (ManagementObject mo in searcher.Get())
    {
    sBIOSSerialNumber = mo["SerialNumber"].ToString().Trim();
    }
    return sBIOSSerialNumber;
    }
    catch
    {
    return "";
    }
    }//获取CPU序列号
    public string GetCPUSerialNumber() 
    {
    try
    {
    ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_Processor");
    string  sCPUSerialNumber = "";
    foreach (ManagementObject mo in searcher.Get())
    {
    sCPUSerialNumber = mo["ProcessorId"].ToString().Trim();
    }
    return sCPUSerialNumber;
    }
    catch
    {
    return "";
    }
    }//获取硬盘序列号
    public string GetHardDiskSerialNumber()
    {
    try
    {
    ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
    string sHardDiskSerialNumber = "";
    foreach(ManagementObject mo in searcher.Get())
    {
    sHardDiskSerialNumber = mo["SerialNumber"].ToString().Trim();
    break;
    }
    return sHardDiskSerialNumber;
    }
    catch
    {
    return "";
    }
    }//获取网卡地址
    public string GetNetCardMACAddress()
    {
    try
    {
    ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapter WHERE ((MACAddress Is Not NULL) AND (Manufacturer <> 'Microsoft'))");
    string NetCardMACAddress = "";
    foreach(ManagementObject mo in searcher.Get()) 

    NetCardMACAddress = mo["MACAddress"].ToString().Trim();
    }
    return NetCardMACAddress;
    }
    catch
    {
    return "";
    }
    }