以编程方式将.reg文件合并到win32注册表中
时间:2020-03-05 18:45:10 来源:igfitidea点击:
以编程方式将.reg文件合并到注册表中的最佳方法是什么?这是用于单元测试; .reg文件是一个测试工件,将在测试开始和结束时添加然后删除。
或者,如果有更好的方法可以针对注册表进行单元测试...
解决方案
回答
我通过检查我的文件关联来调查它。
似乎.reg文件只是作为Windows上regedit.exe
可执行文件的第一个参数被调用的。
因此,我们只能说regedit.exe" mytest.reg"
。我不确定的是如何摆脱弹出的对话框,要求我们进行确认。
回答
使用Win32 API函数ShellExecute()或者ShellExecuteEx()。如果注释为"打开",则应合并.reg文件。我没有测试过,但是应该可以。
回答
可以使用.reg文件删除注册表项,尽管我不确定它的记录程度如何。这是如何做:
REGEDIT4 [-HKEY_CURRENT_USER\Software\<otherpath>]
密钥名称前面的-会告诉Regedit我们要删除密钥。
要以静默方式运行此命令,请键入:
regedit /s "myfile.reg"
回答
关于编写单元测试,最令人沮丧的事情之一就是处理依赖关系。关于测试驱动开发的最伟大的事情之一是,它生成的代码与其依赖项分离。酷吧?
当我发现自己要问这样的问题时,我会寻找使所编写的代码与依赖项脱钩的方法。将注册表的读取与我们要测试的复杂性分开。
回答
如果我们要炮轰,我将使用reg命令(详细信息如下)。如果我们可以告诉我们我们使用的是哪种语言,我们可以提供特定于语言的代码。
C:> reg /?
REG操作[参数列表]
操作[QUERY |添加|删除复制|
保存加载|卸载还原|
比较出口进口|旗帜]
返回码:(REG COMPARE除外)
0成功
1失败
有关特定操作类型的帮助:
REG添加/?
REG DELETE /?
[片段]