如何在 Windows 中获取产品密钥(例如 Adobe、Office)?
How to Get Product Keys (e.g. Adobe, Office) in Windows?
有几个关于如何获取 Windows OS 产品密钥的回答问题,例如 Get windows details like product key, domain name, user name, etc., but I was wondering how to programmatically get the Product Key for a piece of installed software. Uninstall Registry Key 非常好,因为它有很多与已安装程序相关的属性,但是none 的属性涉及产品密钥,所以我想知道是否有其他方法可以通过某些 C# 库或类似的方法来获取任意软件的产品密钥,以及如何通过 C# 获取它。
每个程序都没有存储其产品密钥或许可的标准方法。例如,您可以从 2010 年及之前恢复 Office 产品密钥,但对于 2013 年,我认为这是不可能的。许多产品的激活详细信息在注册表中加密或使用基于云的解决方案(Office 365、Adobe CC)。您可以尝试研究您想要定位的单个产品,以更好地了解每个程序的处理方式。
您可以打开不同的注册表配置单元并递归搜索它们以查找 "keywords",例如:
var reg = Registry.LocalMachine.OpenSubKey("Software");
SearchRecursive(reg);
...
private void SearchRecursive(ReigstryKey reg)
{
var subkeys = reg.GetSubKeyNames();
var values = reg.GetValueNames();
foreach (var value in values)
{
...
}
}
- 连续剧
- 产品编号
- DigitalProductId
....
我想你最后需要某种过滤器,可能会有很多 "wrong hits"。
有几个关于如何获取 Windows OS 产品密钥的回答问题,例如 Get windows details like product key, domain name, user name, etc., but I was wondering how to programmatically get the Product Key for a piece of installed software. Uninstall Registry Key 非常好,因为它有很多与已安装程序相关的属性,但是none 的属性涉及产品密钥,所以我想知道是否有其他方法可以通过某些 C# 库或类似的方法来获取任意软件的产品密钥,以及如何通过 C# 获取它。
每个程序都没有存储其产品密钥或许可的标准方法。例如,您可以从 2010 年及之前恢复 Office 产品密钥,但对于 2013 年,我认为这是不可能的。许多产品的激活详细信息在注册表中加密或使用基于云的解决方案(Office 365、Adobe CC)。您可以尝试研究您想要定位的单个产品,以更好地了解每个程序的处理方式。
您可以打开不同的注册表配置单元并递归搜索它们以查找 "keywords",例如:
var reg = Registry.LocalMachine.OpenSubKey("Software");
SearchRecursive(reg);
...
private void SearchRecursive(ReigstryKey reg)
{
var subkeys = reg.GetSubKeyNames();
var values = reg.GetValueNames();
foreach (var value in values)
{
...
}
}
- 连续剧
- 产品编号
- DigitalProductId ....
我想你最后需要某种过滤器,可能会有很多 "wrong hits"。