Экспорт ключей реестра в файл .REG в C # - PullRequest
7 голосов
/ 15 октября 2011

В настоящее время я использую Microsoft.Win32.Registry функции для создания, удаления, установки / получения значений и т. Д. Есть ли способ «экспортировать» определенный ключ, который содержит настройки приложения, в файл .REG?

Ответы [ 3 ]

4 голосов
/ 15 октября 2011

Вы можете p / pinvoke RegSaveKeyEx.

1 голос
/ 20 августа 2016

Я обнаружил, что при попытке создать действительный REG-файл необходимо соблюдать определенные правила:

Ваш файл ДОЛЖЕН содержать это в первой строке:

"Редактор реестра Windows версии 5.00"

  1. В следующей строке добавить полный путь ключа в скобках

  2. добавить соответствующие пары Имя / Значение, каждая в отдельной строке. формат:

    • "ValueName" = "Value" (тип SZ)
    • "ValueName" = dword:00000000 (тип слова - всегда 8 цифр)

Для BINARY, MULTI_SZ, EXPAND_SZ ... Я не могу комментировать, так как я не работал с ними.

  1. повторите 2 и 3 по мере необходимости, чтобы добавить больше ключей / подразделов

Обратите внимание, что я использовал это только для экспорта / изменения значений строки (SZ); Вот небольшой помощник, который отлично работает для экспорта одного значения:

    private void ExportRegistryKey(string RegistryKeyPath, string ValueName, string Value, string ExportFileName = "ExportedRegValue.reg")
    {
        string regTemplate = @"Windows Registry Editor Version 5.00\r\n[{0}]\r\n""{1}""=""{2}""";
        string regFileContent = string.Format(regTemplate, RegistryKeyPath, ValueName, Value);
        File.WriteAllText(ExportFileName, regFileContent);
        return true;
    }

Если вам нужно экспортировать несколько значений, вы можете изменить функцию на словарь, используя имя значения в качестве ключа и фактические значения в качестве значений, а затем выполнить цикл, добавляя к переменной regFileContent.

0 голосов
/ 15 октября 2011

Другим способом может быть использование powershell для этого.Вы также можете запускать ps-скрипты из c #. Здесь - пример сценария ps, который экспортирует в файл .reg.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...