2017-09-23 96 views
0

我想制作一个软件,用一个唯一的ID激活它。所以我得到了软件序列号的mac地址,但在某些计算机上,mac被计算机的重置所改变。所以我必须设置序列号来激活软件。哪个硬件ID是唯一的?

您打算如何使用C#中的序列号?

回答

0

没有可用的通用硬件ID,英特尔试图在处理器序列号的Pentium III中提供一个,但有a large controversy over it,它从后面的型号中删除,并且在后代中不存在。

您可以读取特定的硬件ID,但没有标准的方法来执行此操作。查看链接问题“What's a good way to uniquely identify a computer?”以获取一些可能的选择。

当我需要这样做时,我所做的选项是使用Windows序列号,即使对于克隆机器(由于它在sysprep过程中更改),它应该是唯一的每台机器,除非它们也违反了微软的许可并且没有系统准备的克隆。

这可以通过WMI

被retreived
var s = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_OperatingSystem"); 
var obj = s.Get().Cast<ManagementObject>().First(); 
var serial = obj["SerialNumber"].ToString(); 
+0

Windows许可证可能不是唯一的,某些Windows许可证类型可以激活多达3台不同的计算机。 – FrakyDale

+0

这3台电脑的序列号会有所不同。序列号不是许可证密钥。 –