Pergunta

Qual é a melhor maneira de mesclar programaticamente um arquivo .reg no registro?Isto é para testes unitários;o arquivo .reg é um artefato de teste que será adicionado e removido no início e no final do teste.

Ou, se houver uma maneira melhor de testar a unidade no registro ...

Foi útil?

Solução

É possível remover chaves de registro usando um arquivo .reg, embora não tenha certeza de quão bem ele está documentado.Veja como:

REGEDIT4

[-HKEY_CURRENT_USER\Software\<otherpath>]

O - na frente do nome da chave diz Regedit que você deseja remover a chave.

Para executar isso silenciosamente, digite:

regedit /s "myfile.reg"

Outras dicas

Se você estiver gastando muito, eu usaria o comando reg (detalhes abaixo).Se você puder nos informar com qual idioma está trabalhando, poderemos fornecer um código específico do idioma.

C:>reg /?

Operação REG [lista de parâmetros]

Operação [Consulta | Adicione | Excluir | Cópia | Salvar | Carga | Descarregar | Restauração | Compare | Exportação | Importação | BANDEIRAS

Código de retorno:(Exceto REG COMPARE)

0 - bem -sucedido 1 - falhou

Para obter ajuda sobre um tipo de operação específico:

REG ADICIONAR /?REG EXCLUIR /?[cortado]

Eu investiguei isso verificando minhas associações de arquivos.

Parece que um arquivo .reg é chamado apenas como o primeiro parâmetro para o regedit.exe executável no Windows.

Então você pode simplesmente dizer regedit.exe "mytest.reg".O que não tenho certeza é como se livrar da caixa de diálogo que aparece solicitando sua confirmação.

Use a função da API Win32 ShellExecute() ou ShellExecuteEx().Se o comentário for 'aberto', ele deverá mesclar o arquivo .reg.Não testei, mas deve funcionar.

Uma das coisas mais frustrantes em escrever testes unitários é lidar com dependências.Uma das melhores coisas sobre o Desenvolvimento Orientado a Testes é que ele produz código dissociado de suas dependências.Legal né?

Quando me pego fazendo perguntas como essa, procuro maneiras de dissociar o código que estou escrevendo da dependência.Separe a leitura do registro da complexidade que você gostaria de testar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top