让我先说明我不知道发生了什么。我只想将注册表项从localhost
更改为127.0.0.1
。我写了一些C#来快速更改它似乎工作,除了我刷新regedit来查看更改。
try {
var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE");
key = key.OpenSubKey(@"ServOr", true);
//SHOWS localhost
MessageBox.Show(key.GetValue(@"HOST").ToString());
key.SetValue(@"HOST", @"127.0.0.1", RegistryValueKind.String);
//SHOWS 127.0.0.1
MessageBox.Show(key.GetValue(@"HOST").ToString());
key.Close();
//Regedit still shows localhost
} catch (Exception exception) {
MessageBox.Show(exception.ToString());
}
如果你再次运行它,那么特别奇怪的部分是,虽然注册表仍然有127.0.0.1
,但两个Messagebox都会显示localhost
。 Visual Studio以管理员权限运行。注册表允许完全控制管理员。
答案 0 :(得分:1)
在64位Windows中运行32位进程时,Windows将从程序中隐藏64位注册表和Program Files目录(以及其他内容)。当32位程序访问注册表时,它将在Wow6432Node
路径中显示它的注册表子集。
因此,您的密钥位于HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ServOr