Я обнаружил, что при попытке создать действительный REG-файл необходимо соблюдать определенные правила:
Ваш файл ДОЛЖЕН содержать это в первой строке:
"Редактор реестра Windows версии 5.00"
В следующей строке добавить полный путь ключа в скобках
добавить соответствующие пары Имя / Значение, каждая в отдельной строке. формат:
"ValueName" = "Value"
(тип SZ)
"ValueName" = dword:00000000
(тип слова - всегда 8 цифр)
Для BINARY
, MULTI_SZ
, EXPAND_SZ
... Я не могу комментировать, так как я не работал с ними.
- повторите 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
.