gpt4 book ai didi

c# - 使用 SetValue 时未创建注册表项

转载 作者:行者123 更新时间:2023-12-03 05:35:05 29 4
gpt4 key购买 nike

我正在编写的程序使用许多注册表项来存储一些重要信息。为了确保程序的第一个方法中存在所有注册表项,我测试注册表项是否存在,如果不存在则创建它们并使用默认值。

这是我的代码:

 RegistryKey RK = Registry.LocalMachine.OpenSubKey("Software");

if (RK.OpenSubKey("NR") == null)
RK.CreateSubKey("NR");
RK = RK.OpenSubKey("NR");

if (RK.OpenSubKey("P") == null)
RK.CreateSubKey("P");
RK = RK.OpenSubKey("P");

if (RK.GetValue("BP") == null)
RK.SetValue("BP", "B{1}-{0}");

问题是,即使我在没有这些 key 的计算机上运行它,它们也不会被创建。该程序设置为始终以管理员身份运行,并且在 Windows XP 计算机上运行。所以使用上面的代码SubKey NR\P存在但BP不存在,运行这段代码后BP仍然不存在。谁能看出出了什么问题吗?

最佳答案

RK 必须以写访问权限打开:

RK = RK.OpenSubKey("P",true);

没有第二个参数,它是只读的。

关于c# - 使用 SetValue 时未创建注册表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15976267/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com