以编程方式将.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 /?
[片段]