RegistryGetSubKeyNames()列出与Regedit不同的键?我们正在使用WIX来安装我们创建的许多服务。我正在编写一个快速实用程序来转储当前安装的服务。我只是遍历以下子项:SOFTWAREMicrosoftWindowsCurrentVersionUninstall寻找DisplayName。问题是,我的十项服务中只有两项出现在列表中。但是,当我查看Regedit中的子项时,它们就在那里。此外,它们在已安装的程序中(我也可以在Win32_Product的SELECT*中找到它们)。我浏览了MSDN文档,试图弄清楚是否有一些我遗漏的注册表的特殊视图。也许这是一个特权问题?但我以管理员身份运行该工具。是否存在配置单元安装问题?为了使代码清晰,这里是测试应用程序代码(来自这个答案):StringregistryKey=@"SOFTWAREMicrosoftWindowsCurrentVersionUninstall";使用(Microsoft.Win32.RegistryKeykey=Registry.LocalMachine.OpenSubKey(registryKey)){foreach(StringsubkeyNameinkey.GetSubKeyNames())Console.WriteLine(key.OpenSubKey(subkeyName).GetValue("DisplayName"));}有任何想法吗?问题是32/64位问题。似乎某些安装发生在HKEY_LOCAL_MACHINESoftwareWow6432Node中......当我枚举它们时,我得到了所有安装。显然我也可以将RegistryKey.OpenBaseKey()与RegistryView.Registry64/32一起使用,而不是使用Wow6432Node。以上是C#学习教程:RegistryGetSubKeyNames()listskeysdifferentfromRegedit?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
