0
我正在尝试做一些注册表编辑。下面的代码是我的问题的一个MCVE:C#编辑注册表不起作用
RegistryKey key;
key = Registry.LocalMachine.OpenSubKey("DRIVERS", true);
key = key.CreateSubKey("Names");
key.SetValue("Name", "nick", RegistryValueKind.String);
key.Close();
该代码工作正常。下面(改变DRIVERS
到SOFTWARE
)不:
RegistryKey key;
key = Registry.LocalMachine.OpenSubKey("SOFTWARE", true);
key = key.CreateSubKey("Names");
key.SetValue("Name", "nick", RegistryValueKind.String);
key.Close();
对我来说,代码的两个块之间的差别是微不足道的。这个问题的原因是什么,我该如何解决这个问题?我已经以管理员身份运行代码。
我的最终目标是修改“SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon”文件夹中的值。
我知道这是可能的从Powershell - 它应该可能从C#以及。
尝试写入您实际要写入的密钥。我怀疑是否有可能污染HKLM的根源。 – Blorgbeard
@Blorgbeard我试过了。这是行不通的。我用我想要写入的密钥进行编辑。它是SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon。 – nhouser9
你肯定会混淆两个不同的问题。写入该密钥*实际*要写入[需要UAC提升](http://stackoverflow.com/questions/2818179/how-do-i-force-my-net-application-to-run-as-管理员)*和*运行程序[作为64位进程](http://stackoverflow.com/a/2843835/17034)。 –