首页 新闻 赞助 找找看

如何获取cpu序列号

0
悬赏园豆:50 [已关闭问题] 关闭于 2010-09-01 16:21

我想获取cpu的序列号用来实现我的软件加密,希望各位大哥大姐帮忙。但是如果是类似以下的代码就不要贴出来了,因为它获得的是cpu编号,不是序列号,同一批次出厂的cpu的编号是相同的,它无法满足我实现加密的要求。谢谢!

public static string GetComputerId()
{

string sProcessorID = "";
string diskID = "";

string sQuery = "SELECT ProcessorId FROM Win32_Processor";

ManagementObjectSearcher oManagementObjectSearcher
=

new ManagementObjectSearcher(sQuery);

ManagementObjectCollection oCollection
= oManagementObjectSearcher.Get();

foreach (ManagementObject oManagementObject in oCollection)
{

sProcessorID
= (string)oManagementObject["ProcessorId"];

}

return (sProcessorID);
}

 

public static string GetComputerId()
{

string cpuInfo = "";//cpu序列号
ManagementClass cimobject = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc
= cimobject.GetInstances();
foreach (ManagementObject mo in moc)
{
cpuInfo
= mo.Properties["ProcessorId"].Value.ToString();
}
return cpuInfo;
}

 

自作自受的主页 自作自受 | 初学一级 | 园豆:30
提问于:2010-08-30 15:09
< >
分享
所有回答(2)
0

http://topic.csdn.net/t/20031031/11/2413817.html

http://www.doserver.net/read.php?1262

 

你应该用机器特征码,有些CPU没序列号.

Launcher | 园豆:45045 (高人七级) | 2010-08-30 15:32
0

把你代码中的 ProcessorId 替换成 UniqueId 试试看。或者两者结合。

看MSDN 中关于 UniqueId 的解释

http://msdn.microsoft.com/en-us/library/aa394373%28VS.85%29.aspx

eaglet | 园豆:17139 (专家六级) | 2010-08-31 07:49
你好,你说的UniqueId我之前试过,不知为什么会出错,提示未将对象引用设置到对象的实例。你能解决这个问题吗?如果能解决的话,这个应该可以拿来用。谢谢!
支持(0) 反对(0) 自作自受 | 园豆:30 (初学一级) | 2010-08-31 10:23
刚刚搜了一下,好像说不是所有的处理器都实现了这个 UniqueId 变量
支持(0) 反对(0) eaglet | 园豆:17139 (专家六级) | 2010-09-01 10:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册