try
            {
                ManagementClass mc = new ManagementClass("Win32_Processor");
                ManagementObjectCollection moc = mc.GetInstances();                String strCpuID = "";
                foreach (ManagementObject m in moc)
                {
                    strCpuID =m.Properties["UniqueId"].Value.ToString();
                    MessageBox.Show(strCpuID);
                    break;
                }  
            }
            catch(Exception exx)
            {
                MessageBox.Show(exx.Message); //报未将对象设置到对象的实例,UniqueID取不出来,  
            }
            //ProcessorId可以,但是不是CPU的唯一标识,可是UniqueID又取不出来,高手指点下,怎么弄?

解决方案 »

  1.   

    using System; 
    using System.Management; // This example demonstrates how to enumerate all logical disks 
    // using the ManagementObjectEnumerator object. 
    class Sample_ManagementObjectEnumerator 
    {
        public static int Main(string[] args) { 
            ManagementClass diskClass = new ManagementClass("Win32_LogicalDisk");
            ManagementObjectCollection disks = diskClass.GetInstances();
            ManagementObjectCollection.ManagementObjectEnumerator disksEnumerator =
                disks.GetEnumerator();
            while(disksEnumerator.MoveNext()) { 
                ManagementObject disk = (ManagementObject)disksEnumerator.Current;
               Console.WriteLine("Disk found: " + disk["deviceid"]);
            }
            return 0;
        }
    }
      

  2.   

    using System; 
    using System.Management; // This example demonstrates how to enumerate instances of a ManagementClass object.
    class Sample_ManagementObjectCollection 

        public static int Main(string[] args) { 
            ManagementClass diskClass = new ManagementClass("Win32_LogicalDisk");
            ManagementObjectCollection disks = diskClass.GetInstances(); 
            foreach (ManagementObject disk in disks) { 
                Console.WriteLine("Disk = " + disk["deviceid"]); 
            } 
            return 0;
        }
    }
      

  3.   

                string cpuInfo = "";    // cpu序列号
                try
                {
                    //获取CPU序列号代码
                    ManagementClass mc = new ManagementClass("Win32_Processor");
                    ManagementObjectCollection moc = mc.GetInstances();
                    foreach (ManagementObject mo in moc)
                    {
                        cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
                    }
                    moc = null;
                    mc = null;
                }
                catch
                {
                    throw new Exception("unknown");
                }
                Console.WriteLine(cpuInfo);
      

  4.   

    六楼:
       我不取ProcessorId,想取的是:UniqueID。