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

StackOverflow https://stackoverflow.com/questions/35070

  •  09-06-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

REGEDIT4

[-HKEY_CURRENT_USER\Software\<otherpath>]

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

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

regedit /s "myfile.reg"

Другие советы

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

C: > reg /?

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

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

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top