从Windows注册表C#windows应用程序编写和读取

时间:2015-03-17 16:59:11

标签: c# .net winforms

以编程方式,我想保留并保存一些内容(将写入并更新该计数的值到注册表),但即使在卸载和重新安装时,它也不会从注册表中消失(删除) Windows窗体应用程序使用我创建的MSI设置。

即使重新安装,我也希望从注册表中读取旧值。 我总是想要跟踪这个价值。

我怎样才有可能?

3 个答案:

答案 0 :(得分:0)

.NET Framework中有一个Registry类。

Microsoft.Win32.Registry
    .CurrentUser
    .OpenSubKey(@"Software\YourApplication")
    .SetValue("ConfigValue1", example);

(当然你必须先创建" YourApplication"键。这只是一个例子)

它就像那样简单,也非常自我解释。

此外,除非您告诉安装人员,否则这些值不会被删除。由于您还没有告诉我们您的安装程序,我认为您的主要问题是处理注册表编写/阅读。

答案 1 :(得分:0)

如果您能够在部署项目中创建注册表项,那么在卸载期间单独保留密钥非常简单。

在安装程序的注册表编辑器窗口中,选择要保留的项,然后打开属性选项卡。此处有两个属性 DeleteAtUninstall ,用于确定卸载程序是否删除密钥。和传递,它决定重新安装是否会重新检查密钥。我相信如果您的MSI修复了安装,也可以使用它。

enter image description here

答案 2 :(得分:0)

如果您没有在MSI中创建注册表项(如果它不在那里,则在运行时创建它)并且您不要让MSI知道它然后它赢了&# 39;卸载程序将其删除。与您在运行时创建的文件相同。

您需要决定是否要保存每个用户或每台计算机的值

using Microsoft.Win32;
...
//var root = Registry.LocalMachine
var root = Registry.CurrentUser;
//Use Create Sub Key to 'Creates a new subkey or opens an existing subkey for write access'
root.CreateSubKey("YourKey").SetValue("MyInt", val);
相关问题