c# - Registry.LocalMachine.OpenSubKey() 返回与注册表编辑器不同的结果
问题描述
我正在尝试为我的 CAD 插件创建安装程序,并且需要获取 AutoCAD 安装位置。但返回值与RegistryKey.GetSubKeyNames()
我在注册表编辑器中看到的不同。
string registry_key = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
using (Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(registry_key))
{
foreach (string subkey_name in key.GetSubKeyNames())
{
Console.WriteLine(subkey_name);
}
}
输出:
AddressBook
Autodesk Application Manager
Autodesk Content Service
Autodesk Material Library 2015
Autodesk Material Library Base Resolution Image Library 2015
Connection Manager
DirectDrawEx
DXM_Runtime
f528b707
Fontcore
...
在注册表编辑器中:
animizvideocn_is1
AutoCAD 2015
Autodesk 360
连接管理器
...
AutoCAD 2015
是我需要的
解决方案
您的安装程序似乎是 32 位应用程序,或者至少作为 32 位进程运行。
因此,Windows 重定向
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
至
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall
要访问非重定向节点,请按照此处的说明进行操作。
推荐阅读
- vhdl - 执行期间 VHDL 复位
- c# - 如何发布到 RESTful Web API
- amazon-web-services - AWS:Amazon Cognito 与 STS 和 SAML
- reactjs - 打字稿导入模块问题
- dart - 演练中的下一个和上一个按钮
- android - Zxing解码android相机拍摄的图像抛出NotFoundException
- tensorflow - tensorflow 对象检测是否支持分布式策略?
- c# - “限定在该命名空间中使用类型”的语句在 C# 中是什么意思
- android - Android TV-leanback 库如何向 VideoSupportFragmentGlueHost 添加更多按钮
- pdf - 从 PDF C# 中提取的国家字符/Unicode 字符