Как получить ключи продукта (например, Adobe, Office) в Windows?

Есть несколько ответов на вопросы о том, как получить ключ продукта ОС Windows, например Получить сведения о Windows, такие как ключ продукта, имя домена, имя пользователя и т. Д., Но мне было интересно, как программно получить ключ продукта для части установленного программного обеспечения. Удаление ключа реестра действительно приятно, так как в нем много атрибутов, связанных с установленной программой, но ни один из атрибутов не включает ключ продукта, поэтому мне было интересно, есть ли какие-то другие средства через какую-либо библиотеку C# или что-то подобное, чтобы получить ключ продукта для произвольный кусок программного обеспечения и как получить его через C#.

2 ответа

Решение

Не существует стандартного способа, которым каждая программа хранит свой ключ продукта или лицензию. Например, вы можете восстановить ключ продукта Office с 2010 года и ранее, но с 2013 года я не верю, что это возможно. Многие продукты содержат сведения об активации, либо зашифрованные в реестре, либо с помощью облачного решения (Office 365, Adobe CC). Вы можете попытаться исследовать отдельные продукты, на которые вы хотели бы ориентироваться, чтобы лучше понять, как обрабатывается каждая программа.

Вы можете открыть различные кусты реестра и искать их рекурсивно по ключевым словам:

  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 ....

Я думаю, вам понадобится какой-то фильтр в конце, может быть много "неправильных попаданий".

Другие вопросы по тегам