программно объединить файл .reg в реестр win32

Каков наилучший способ программно объединить файл .reg с реестром? Это для модульного тестирования; файл .reg — это тестовый артефакт, который будет добавлен, а затем удален в начале и в конце тестирования.

Или, если есть лучший способ модульного тестирования реестра...


person Scott Marlowe    schedule 29.08.2008    source источник


Ответы (5)


Ключи реестра можно удалить с помощью файла .reg, хотя я не уверен, насколько хорошо это задокументировано. Вот как:

REGEDIT4

[-HKEY_CURRENT_USER\Software\<otherpath>]

- перед именем ключа говорит Regedit, что вы хотите удалить ключ.

Чтобы запустить это без вывода сообщений, введите:

regedit /s "myfile.reg"
person Matt Dillard    schedule 29.08.2008

Если вы раскошелитесь, я бы использовал команду reg (подробности ниже). Если вы сообщите нам, с каким языком вы работаете, мы можем предоставить код для конкретного языка.

С:>рег/?

Операция REG [Список параметров]

Операция [ ЗАПРОС | ДОБАВИТЬ | УДАЛИТЬ | КОПИРОВАТЬ | СОХРАНИТЬ | НАГРУЗКА | РАЗГРУЗИТЬ | ВОССТАНОВИТЬ | СРАВНИТЬ | ЭКСПОРТ | ИМПОРТ | ФЛАГИ ]

Код возврата: (Кроме REG COMPARE)

0 - успешно 1 - не удалось

Для справки по конкретному типу операции:

РЕГ ДОБАВИТЬ /? РЕГ УДАЛИТЬ /? [отрезано]

person Jon Galloway    schedule 09.09.2008

Я изучил это, проверив свои ассоциации файлов.

Кажется, что файл .reg просто вызывается как первый параметр исполняемого файла regedit.exe в Windows.

Так что вы можете просто сказать regedit.exe "mytest.reg". В чем я не уверен, так это в том, как избавиться от всплывающего диалогового окна, которое запрашивает ваше подтверждение.

person Javache    schedule 29.08.2008

Используйте функцию API Win32 ShellExecute() или ShellExecuteEx(). Если комментарий «открыт», он должен объединить файл .reg. Я не проверял, но должно работать.

person jmatthias    schedule 29.08.2008
comment
Что вы имеете в виду под «если комментарий открыт», Джонни Мэтис? - person B. Clay Shannon; 22.01.2015

Одна из самых неприятных вещей при написании модульных тестов — это работа с зависимостями. Одна из самых замечательных особенностей разработки через тестирование заключается в том, что она создает код, который не связан со своими зависимостями. Круто, да?

Когда я ловлю себя на том, что задаю подобные вопросы, я ищу способы отделить код, который я пишу, от зависимости. Отделите чтение реестра от сложности, которую вы хотите протестировать.

person Jay Bazuzi    schedule 09.09.2008