gpt4 book ai didi

c# - C# 上的注册表和 Wow6432Node

转载 作者:太空宇宙 更新时间:2023-11-03 23:23:57 25 4
gpt4 key购买 nike

我试图访问 Wow6432Node 中注册表中的路径,在其中写入一个值,但它不起作用。我尝试了不同的代码,但仍然无法正常工作。我在 x64 位 Windows 10 上将它作为“任何 CPU”运行。我怀疑它与 x86 和 x64 之间的注册表差异有关。我错了吗?

if (rv3.Checked == true)
{

string line2 = File.ReadLines(AppDomain.CurrentDomain.BaseDirectory + "simulators.txt").Skip(3).Take(1).First();
MessageBox.Show(line2);
if (System.IO.Directory.Exists(line2))
{
var baseReg = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
var Key = baseReg.OpenSubKey(@"SOFTWARE\Wow6432Node\Microsoft\Microsoft Games\flight simulator\10.0\");
if (Key != null)
{
RegistryKey key2 = baseReg.OpenSubKey(@"SOFTWARE\Wow6432Node\Microsoft\Microsoft Games\flight simulator\10.0\");



key2.SetValue("SetupPath", line2);
key2.Close();


}

}



}

亲切的问候!

最佳答案

我在使用注册表时遇到了类似的问题,我怀疑您是“virtualization”的受害者。

在具有用户帐户控制 (UAC) 的计算机上,您不会被严格拒绝写入注册表的权限,但调用会被虚拟化。查看您期望看到的值是否出现在 HKEY_USERS\<User SID>_Classes\VirtualStore\Machine\Software\。 .

解决方案是add an application manifest file到解决方案,并设置requestedExecutionLevel level="requireAdministrator" ,这意味着无论何时您在具有 UAC 的计算机上运行该应用程序,它都会询问“您确定吗?”。您还需要确保项目属性指定要使用的 list 。

然后我遇到了第二个问题,即当您通过 Visual Studio 进行调试时,它将以 VS 执行级别运行,而不是 list (see here) 中指定的级别。最简单的解决方案是在快捷方式属性中将 VS 设置为以管理员身份运行。

关于c# - C# 上的注册表和 Wow6432Node,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34405644/

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