【问题标题】:How to Get Product Keys (e.g. Adobe, Office) in Windows?如何在 Windows 中获取产品密钥(例如 Adob​​e、Office)?
【发布时间】:2015-09-22 07:03:30
【问题描述】:

关于如何获取 Windows 操作系统产品密钥(如 Get windows details like product key, domain name, user name, etc.)有几个已回答的问题,但我想知道如何以编程方式获取已安装软件的产品密钥。 Uninstall Registry Key 非常好,因为它有很多与已安装程序相关的属性,但没有一个属性涉及产品密钥,所以我想知道是否有其他方法可以通过某些 C# 库或其他方法获取产品密钥任意软件以及如何通过 C# 获取它。

【问题讨论】:

  • 为什么要获取产品密钥?大多数使用它似乎相当邪恶。
  • 我正计划开发一个开源应用程序,该应用程序输出一个包含已安装程序和产品密钥列表的 csv,以防人们将 Windows 迁移到 Windows 10 出现问题并且他们想要轻松推迟安装他们以前拥有的程序(我个人在云中保存了这样一个列表,按安装优先级排序)。

标签: c# registry product-key


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

      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
    • 数字产品 ID ....

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

    【讨论】:

      猜你喜欢
      • 2020-02-08
      • 1970-01-01
      • 2014-05-04
      • 2013-01-15
      • 1970-01-01
      • 1970-01-01
      • 2017-09-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多