【发布时间】:2018-03-05 02:12:39
【问题描述】:
我想制作一个软件来使用唯一的 ID 来激活它。所以我得到了软件序列号的mac地址,但在某些计算机中,mac被计算机重置而改变。所以我必须再次设置序列号来激活软件。
您建议在 C# 中使用什么序列号?
【问题讨论】:
标签: c# sql-server windows uniqueidentifier
我想制作一个软件来使用唯一的 ID 来激活它。所以我得到了软件序列号的mac地址,但在某些计算机中,mac被计算机重置而改变。所以我必须再次设置序列号来激活软件。
您建议在 C# 中使用什么序列号?
【问题讨论】:
标签: c# sql-server windows uniqueidentifier
没有通用的硬件 ID 有效,英特尔试图在他们的 Pentium III 中提供一个带有处理器序列号的,但有 a large controversy over it,它已从后来的型号中删除,并且在后代中不存在。
您可以读取特定的硬件 ID,但没有标准化的方法可以读取。有关一些可能的选择,请参阅链接问题“What's a good way to uniquely identify a computer?”。
当我需要这样做时,我会选择使用 windows 序列号,这对于每台机器来说应该是唯一的,即使对于克隆机器也是如此(由于它在 sysprep 过程中发生变化),除非它们违反了 Microsoft 的许可也可以在没有系统准备的情况下进行克隆。
这可以通过 WMI 检索
var s = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_OperatingSystem");
var obj = s.Get().Cast<ManagementObject>().First();
var serial = obj["SerialNumber"].ToString();
【讨论】: