6

以编程方式将 .reg 文件合并到注册表中的最佳方法是什么?这是用于单元测试;.reg 文件是一个测试工件,将在测试开始和结束时添加然后删除。

或者,如果有更好的方法对注册表进行单元测试......

4

5 回答 5

8

可以使用 .reg 文件删除注册表项,但我不确定它的记录情况如何。就是这样:

REGEDIT4

[-HKEY_CURRENT_USER\Software\<otherpath>]

-密钥名称前面的表示Regedit您要删除该密钥。

要静默运行,请键入:

regedit /s "myfile.reg"
于 2008-08-29T19:53:11.507 回答
5

如果您要脱壳,我会使用 reg 命令(详细信息如下)。如果您可以告诉我们您正在使用哪种语言,我们可以提供特定于语言的代码。

C:>注册/?

REG操作【参数列表】

操作 [ 查询 | 添加 | 删除 | 复制 | 保存 | 加载 | 卸载 | 恢复 | 比较 | 出口 | 进口 | 旗帜]

返回代码:(REG COMPARE 除外)

0 - 成功 1 - 失败

有关特定操作类型的帮助:

注册添加/?注册删除/?[剪断]

于 2008-09-09T22:09:32.053 回答
2

我通过检查我的文件关联来调查它。

似乎 .reg 文件只是作为regedit.exeWindows 上可执行文件的第一个参数调用。

所以你可以说regedit.exe "mytest.reg"。我不确定的是如何摆脱弹出的要求您确认的对话框。

于 2008-08-29T19:21:20.023 回答
1

使用 Win32 API 函数 ShellExecute() 或 ShellExecuteEx()。如果注释是“打开的”,它应该合并 .reg 文件。我还没有测试过,但它应该可以工作。

于 2008-08-29T19:24:06.773 回答
0

编写单元测试最令人沮丧的事情之一就是处理依赖关系。测试驱动开发最伟大的事情之一是它生成的代码与其依赖项分离。酷吧?

当我发现自己在问这样的问题时,我会寻找将我正在编写的代码与依赖项分离的方法。将注册表的读取与您想要测试的复杂性分开。

于 2008-09-09T22:05:11.690 回答