2008-08-29 13 views
5

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

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

ответ

8

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

REGEDIT4 

[-HKEY_CURRENT_USER\Software\<otherpath>] 

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

Для запуска этого молча, типа:

regedit /s "myfile.reg" 
2

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

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

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

1

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

+0

Что вы подразумеваете под «Если комментарий« открыт », Джонни Матис? – 2015-01-21 22:51:19

0

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

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

5

Если вы обстреливаете, я бы воспользовался командой reg (подробнее см. Ниже). Если вы можете сообщить нам, с каким языком вы работаете, мы можем предоставить код, специфичный для языка.

C:> reg /?

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

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

Код возврата: (за исключением REG СРАВНЕНИЕ)

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

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

REG ADD /? REG DELETE /? [snipped]

 Смежные вопросы

  • Нет связанных вопросов^_^