问题描述
stringcpuInfo="";using(ManagementClasscimobject=newManagementClass("Win32_Processor")){ManagementObjectCollectionmoc=cimobject.GetInstances();foreach(ManagementObjectmoinmoc){cpuInfo=mo.Properties["ProcessorId"].Value.ToString();mo.Dispose();}}returncpuInfo.ToString();
都说这样获取,但是好多机子获取到的都是一样的,什么情况,都是这个BFEBFBFF000306A9谁有更好的方法
解决方案
解决方案二:
Guid呗
解决方案三:
///<summary>///获取CPU系列号///</summary>///<returns></returns>privatestringgetCpu(){stringstrCpu=null;ManagementClassmyCpu=newManagementClass("win32_Processor");ManagementObjectCollectionmyCpuConnection=myCpu.GetInstances();foreach(ManagementObjectmyObjectinmyCpuConnection){strCpu=myObject.Properties["Processorid"].Value.ToString();break;}returnstrCpu;}///<summary>///获取硬盘系列号///</summary>///<returns></returns>privatestringGetDiskVolumeSerialNumber(){ManagementClassmc=newManagementClass("Win32_NetworkAdapterConfiguration");ManagementObjectdisk=newManagementObject("win32_logicaldisk.deviceid="c:"");disk.Get();returndisk.GetPropertyValue("VolumeSerialNumber").ToString();}
解决方案四:
///<summary>///获取CPU序列号///</summary>///<returns></returns>privatestaticStringGetCpuId(){varmyCpu=newManagementClass("win32_Processor").GetInstances();varserial="";foreach(ManagementObjectcpuinmyCpu){varval=cpu.Properties["Processorid"].Value;serial+=val==null?"":val.ToString();}returnserial;}///<summary>///获取主板序列号///</summary>///<returns></returns>privatestaticStringGetMbId(){varmyMb=newManagementClass("Win32_BaseBoard").GetInstances();varserial="";foreach(ManagementObjectmbinmyMb){varval=mb.Properties["SerialNumber"].Value;serial+=val==null?"":val.ToString();}returnserial;}///<summary>///获取硬盘序列号///</summary>///<returns></returns>privatestaticStringGetHdId(){varlpm=newManagementClass("Win32_PhysicalMedia").GetInstances();varserial="";foreach(ManagementObjecthdinlpm){varval=hd.Properties["SerialNumber"].Value;serial+=val==null?"":val.ToString().Trim();}returnserial;}
解决方案五:
曹版主说过很多次了。cpuid不是唯一。。
解决方案六:
引用3楼xuanbg的回复:
///<summary>///获取CPU序列号///</summary>///<returns></returns>privatestaticStringGetCpuId(){varmyCpu=newManagementClass("win32_Processor").GetInstances();varserial="";foreach(ManagementObjectcpuinmyCpu){varval=cpu.Properties["Processorid"].Value;serial+=val==null?"":val.ToString();}returnserial;}///<summary>///获取主板序列号///</summary>///<returns></returns>privatestaticStringGetMbId(){varmyMb=newManagementClass("Win32_BaseBoard").GetInstances();varserial="";foreach(ManagementObjectmbinmyMb){varval=mb.Properties["SerialNumber"].Value;serial+=val==null?"":val.ToString();}returnserial;}///<summary>///获取硬盘序列号///</summary>///<returns></returns>privatestaticStringGetHdId(){varlpm=newManagementClass("Win32_PhysicalMedia").GetInstances();varserial="";foreach(ManagementObjecthdinlpm){varval=hd.Properties["SerialNumber"].Value;serial+=val==null?"":val.ToString().Trim();}returnserial;}
CPUID不是唯一的,如果想生成注册码,建议CPUID+主板序列号+硬盘序列号,这样重复的几率小
解决方案七:
或者使用Guid