2016-11-08 4 views
-2

Я думал, что использование RegSaveKeyEx поможет мне сохранить раздел реестра как .REG-файл, но он не работает. У меня есть этот код:Сохранить как .REG-файл с помощью WinApi

// Saving key 
LONG saveKey = RegSaveKeyExW(keyResult, L"C:\\Demo1.reg", securityAttributes, Flags); 

securityAttributes установлен как NULL и Flags как REG_LATEST_FORMAT.

У меня нет проблем, сохранив его как .DAT-файл, но хочу .REG, например, экспортировать подраздел из самого окна реестра.

Это как файл .REG выглядит следующим образом:

.REG file

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

+2

Нет, для этого нет API. Формат .REG обрабатывается RegEdit. –

+0

Возможный дубликат [RegSaveKeyEx требует отметки?] (Http://stackoverflow.com/questions/1088612/regsavekeyex-requires-elevation) – VuVirt

+0

Нет. Я не говорю о включении/отключении привилегий в токене доступа; Я говорю о самой функции. –

ответ

1

Функция Registry API не будет выдавать ключ в формате .reg. Вам придется перечислить содержимое ключа самостоятельно и записать свой собственный файл .reg вручную.

1

Вы можете просто использовать reg export

Вот пример:

reg export HKLM\Software\MyCo\MyApp AppBkUp.reg 

В вашем коде вам просто нужно позвонить ShellExecuteEx с REGEDIT, и правильными параметрами командной строки.