mesclar programaticamente o arquivo .reg no registro win32
-
09-06-2019 - |
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 ...
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.