如何以编程方式更改Window的注册表中的值?

时间:2009-03-13 18:16:43

标签: c# registry batch-file

我需要以编程方式将\ HKEY_CURRENT_USER \ Software \ Intuit \ QBWebConnector中的“Level”字符串更改为“详细”

最好的方法是什么? C#,bat文件?我之前从未修改过注册表...

感谢。

4 个答案:

答案 0 :(得分:5)

如果您要更改的注册表项已经在注册表中,则创建* .reg文件的最简单方法是根据需要更改注册表项:

  1. 打开Regedit
  2. 在左侧树视图中找到要更改的注册表项正上方的注册表文件夹。
  3. 右键单击该文件夹,然后选择“导出”。
  4. 使用记事本打开刚刚导出的文件并删除第一行以外的任何内容(“Windows注册表编辑器版本5.00”或类似内容),文件夹名称(在您的案例中为[HKEY_CURRENT_USER \ Software \ Intuit \ QBWebConnector])和要更改的密钥的名称值对
  5. 编辑您想要适当更改的值并保存文件。在您的情况下,您应该得到以下* .reg文件:
  6.   

    Windows注册表编辑器版本5.00

         

    [HKEY_CURRENT_USER \ SOFTWARE \忒\ QBWebConnector]

         

    “等级”= “详细”

    双击文件并确认安全警告将对您的注册表执行更改。

    或者,在批处理文件中,您可以通过“REGEDIT / S pathname”静默导入注册表文件

    小心注册表,否则可能会破坏您的Windows安装。

答案 1 :(得分:5)

以上没有提到的更简单的方法:

  1. Reg.exe 添加 - 输入reg /?查看选项,输入Reg reference了解详情。
  2. Regini.exe [scriptfile] - 比.reg文件更强大,您可以删除子项和数据项并设置权限。键入regini /?以查看说明或MSDN文章Distributing Registry Changes了解详情。
  3. ATL :: CRegKey类,SetStringValue()成员,请参阅MSDN
  4. .NET注册表类SetValue()(C#,C ++,F#,VB) - 请参阅MSDN reference
  5. Win32 API,例如RegSetKeyValue()。查看Registry Functions 参考

答案 2 :(得分:2)

实际上,更改一堆注册表项的最简单方法是使用*.reg file并将其加载到注册表中。但要小心:您通常无法通过电子邮件将这些文件发送给用户,因为它们会被许多邮件服务器过滤。

我们偶尔会使用这种技术传递应用程序配置并在其他计算机上测试它们。

我只提到这种非程序化的解决方案,因为你建议C#应用程序或批处理文件都没问题,这表明你正在寻找轻量级的东西,你不会太担心细节。

答案 3 :(得分:1)

从批处理文件中,您可以使用reg.exe