Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以字符串形式返回注册表值_C# - Fatal编程技术网

C# 以字符串形式返回注册表值

C# 以字符串形式返回注册表值,c#,C#,我正在尝试读取另一个应用程序注册表值,但没有取得多大成功。我在谷歌上搜索了整整一页半的搜索结果,但没有找到我想要的 我正在尝试读取以下注册表值: \\HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\AVG CloudCare\DisplayVersion 典型值为:“3.5.3” 我正在使用我在网上找到的代码: RegistryKey RegInfo = Registry.Lo

我正在尝试读取另一个应用程序注册表值,但没有取得多大成功。我在谷歌上搜索了整整一页半的搜索结果,但没有找到我想要的

我正在尝试读取以下注册表值:

\\HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\AVG CloudCare\DisplayVersion
典型值为:“3.5.3”

我正在使用我在网上找到的代码:

RegistryKey RegInfo = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\AVG CloudCare", false);

object CCVersionReg = RegInfo.GetValue("DisplayVersion", "0");

Console.WriteLine(CCVersionReg);
Console.ReadLine();
然而,我总是得到一个错误:“对象引用未设置为对象的实例。”

我尝试将对象转换为如下字符串:

Console.WriteLine(CCVersionReg.ToString);
这也不起作用,错误是“无法从'bool'转换为'methodgroup'

我之所以需要它,是为了将此版本与更新程序应用程序的已知最新版本进行比较,我需要使用字符串来比较值。

试试这个

var key = @"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\AVG CloudCare";
Console.WriteLine(Registry.GetValue(key, "DisplayVersion", "0")?.ToString());
当对
null
对象调用
ToString()
时,它会抛出未设置为对象实例的
对象引用

var key = @"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\AVG CloudCare";
Console.WriteLine(Registry.GetValue(key, "DisplayVersion", "0")?.ToString());

当对
null
对象调用
ToString()
时,它会抛出未设置为对象实例的
对象引用

您的应用程序是否在64位操作系统上运行?
如果是,请参阅:

您的应用程序是否在64位操作系统上运行? 如果是,请参阅:

您的错误

Console.WriteLine(CCVersionReg.ToString);
正在引发该错误,因为CCVersion.ToString是一个方法组。您需要通过执行以下操作来调用该方法:

Console.WriteLine(CCVersionReg.ToString());
但是,如果CCVersionReg为null,则会出现null引用异常(如您所见)。请检查是否正确创建了该异常,以避免出现错误

Console.WriteLine(CCVersionReg.ToString);
正在引发该错误,因为CCVersion.ToString是一个方法组。您需要通过执行以下操作来调用该方法:

Console.WriteLine(CCVersionReg.ToString());

但是,您将得到一个空引用异常(如您所见)如果CCVersionReg为null。请检查是否正确创建了它

是否验证了密钥是否确实存在于正在运行它的计算机上?
RegInfo
可能是
null
,因为您忘记了子密钥字符串中的
Wow6432Node
部分。是否验证了密钥确实存在于正在运行它的计算机上t on?
RegInfo
可能是
null
,因为您忘记了子键字符串中的
Wow6432Node
部分。非常感谢这项工作完成了。比我一直尝试的要简单得多!非常感谢这项工作完成了。比我一直尝试的要简单得多!