如何从注册表检索已安装的文件路径

本文关键字:安装 文件 路径 检索 注册表 | 更新日期: 2023-09-27 18:05:53

我想从注册表中检索已安装软件的路径,我尝试过不同的方法,即这个和这个,但我面临同样的错误:

对象引用未设置为对象的实例。

我观察到Registry.LocalMachine.OpenSubKey(registry_key)返回null,所以我搜索了这个问题的解决方案,发现了很多,但这些都不能解决我的问题。我想继续下面的代码:

string txt_filePath = "";
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"HKEY_LOCAL_MACHINE'SOFTWARE'Bentley'AutoPIPE'V8i SELECTSeries 6 Ribbon Preview and Reporting");
object objRegisteredValue = key.GetValue("ApplicationPath");
txt_filePath = objRegisteredValue.ToString();

如何从注册表检索已安装的文件路径

也许麻烦是因为x64位机器?试试这个:

    var regView = Environment.Is64BitOperatingSystem ? RegistryView.Registry64 : RegistryView.Registry32;
    var registry = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, regView);
    var keyPath = @"HKEY_LOCAL_MACHINE'SOFTWARE'Bentley'AutoPIPE'V8i SELECTSeries 6 Ribbon Preview and Reporting'RibbonUI.xml";
    var key = registry.OpenSubKey(keyPath);