gpt4 book ai didi

c# - RegistryKey.GetSubKeyNames 抛出 IOException

转载 作者:行者123 更新时间:2023-11-30 17:18:30 32 4
gpt4 key购买 nike

使用 RegistryKey.GetSubKeyNames 时,一个 IOExeption 被抛出:

"No more data is available"

相关代码如下:

string subKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products";
RegistryKey key = Registry.LocalMachine.OpenSubKey( subKey );
string[] keys = key.GetSubKeyNames(); // throws IOException here

规范

  • Win7 x64
  • VS 2010 SP1
  • .NET 3.5

使用“Any CPU”构建类型时抛出异常;当使用“x86”构建类型时,代码按预期执行,但从“Wow6432Node”读取键,而不是上面定义的 subKey 字符串变量中命名的 SubKey 路径。

问题是:如何在 64 位系统(不是 Wow6432Node)上读取上面定义的 subKey 路径中的所有 SubKey?

注意:当我在另一个 64 位系统上运行相同的代码时,代码执行时没有错误。我几乎倾向于认为我可能在某处有损坏的注册表项?如果是这样,关于如何找到损坏的 key 有什么想法吗?

最佳答案

将适当的 RegistryView 传递给 RegistryKey.OpenBaseKey()

例如:

RegistryKey tempRegKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64).OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server");

关于c# - RegistryKey.GetSubKeyNames 抛出 IOException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5706073/

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