C# 无法在C中设置注册表值#
我有一个名为C# 无法在C中设置注册表值#,c#,registry,C#,Registry,我有一个名为system\u module的windows窗体应用程序。我希望它能用windows启动。这是我的代码 private void Form1_Load(object sender, EventArgs e) { string keyName = @"Software\\Microsoft\\Windows\\CurrentVersion\\Run"; using (RegistryKey key = Registry.CurrentUser
system\u module
的windows窗体应用程序。我希望它能用windows启动。这是我的代码
private void Form1_Load(object sender, EventArgs e)
{
string keyName = @"Software\\Microsoft\\Windows\\CurrentVersion\\Run";
using (RegistryKey key = Registry.CurrentUser.OpenSubKey(keyName, true))
{
if (key == null)
{
// Key doesn't exist.
key.SetValue("system_module", "Application Location");
}
else { }
}
}
但这并不是在运行中创造价值/
我搜索了整个注册表,除了一些不相关的值外,没有发现任何与system_模块相关的内容
另外,我对注册的事情不太了解。对不起,如果我的术语是错误的。希望你能理解我想要表达的意思。
我在这个网站的其他问题中找到了上面的代码。我不知道这为什么不起作用 您没有使用SetValue()-因为“Run”键存在 使用: 并处理key==null以添加Run键(默认情况下该键存在)
如果你不想修改密钥,如果你的“系统模块”、“应用程序位置”已经存在,你必须查询“密钥”下的值,如果(key==null){key.SetValue…}是个坏主意。如果它不存在,则添加它,不设置不存在的键的值。我认为如果它不存在,Setvalue将创建该键。非常感谢。它将抛出NullReferenceException,因为您无法调用不存在的对象的方法。好的。我现在明白了。谢谢我还有一个问题。setvalue()是否更新了存在的值?@emperueuraiman-Yes setvalue()更新了值!-顺便说一句:如果这个答案对你有帮助,请把它标记为解决方案
if (key != null)
{
// Key doesn't exist.
key.SetValue("system_module", "Application Location");
}