0

关于如何获取 Windows 操作系统产品密钥,例如获取 Windows 详细信息,如产品密钥、域名、用户名等,有几个已回答的问题,但我想知道如何以编程方式获取已安装软件的产品密钥。卸载注册表项非常好,因为它有很多与已安装程序相关的属性,但没有一个属性涉及产品密钥,所以我想知道是否有其他方法可以通过某些 C# 库或其他方法获取产品密钥任意软件以及如何通过 C# 获取它。

4

2 回答 2

0

您可以打开不同的注册表配置单元并递归搜索它们以查找“关键字”,例如:

  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)
       {
          ...
       }
    }
  • 串行
  • 产品编号
  • 数字产品ID ....

我认为你最后需要某种过滤器,可能会有很多“错误点击”。

于 2015-12-22T09:57:33.447 回答
0

每个程序都没有标准的方式来存储它的产品密钥或许可。例如,您可以从 2010 及之前恢复 Office 产品密钥,但对于 2013,我认为这是不可能的。许多产品的激活详细信息要么在注册表中加密,要么使用基于云的解决方案(Office 365、Adobe CC)。您可以尝试研究您想要定位的单个产品,以更好地了解每个程序的处理方式。

于 2015-07-04T19:03:26.657 回答