программно объединить файл .reg в реестр win32 - PullRequest
5 голосов
/ 29 августа 2008

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

Или, если есть лучший способ провести юнит-тестирование в реестре ...

Ответы [ 5 ]

8 голосов
/ 29 августа 2008

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

REGEDIT4

[-HKEY_CURRENT_USER\Software\<otherpath>]

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

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

regedit /s "myfile.reg"
5 голосов
/ 10 сентября 2008

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

C:> reg /?

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

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

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

0 - успешно 1 - Ошибка

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

REG ADD /? REG DELETE /? [Пропущено]

2 голосов
/ 29 августа 2008

Я посмотрел на это, проверив свои файловые ассоциации.

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

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

1 голос
/ 29 августа 2008

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

0 голосов
/ 10 сентября 2008

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

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

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