检查某个值是否在某个子项中,然后执行某些操作

时间:2014-07-01 11:15:22

标签: c# registry

我试图从CurrentUser\Software\Microsoft\VisualStudio\12.0文件夹中读取。在一个名为“UpgradeCheckScheduledTimestamp”的子项中。如果它的值为true,我想做点什么。

看了很多例子,但只有当值为空时才会显示。但我想寻找一个具体的价值。

到目前为止,我一直在摆弄

RegistryKey regKey = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\VisualStudio\\12.0, UpgradeCheckScheduledTimestamp");

if (regKey != null)
{
    regKey.GetValue("UpgradeCheckScheduledTimestamp");
}

Console.WriteLine(regKey);

2 个答案:

答案 0 :(得分:1)

你快到了。只需删除" UpgradeCheckScheduledTimestamp"从第一行代码开始。

然后你必须将if语句中的值分配给另一个变量,或者只是在获得值时写入控制台。如果找不到该子项,它只会写一个空行。

RegistryKey regKey
    = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\VisualStudio\\12.0");

if (regKey != null)
{
    Console.WriteLine(regKey.GetValue("UpgradeCheckScheduledTimestamp"));
}

答案 1 :(得分:0)

您可以使用

object o = Registry.GetValue("HKEY_CURRENT_USER\\Software\\Microsoft\\...", "UpgradeCheckScheduledTimestamp", false);
if (o != null && Convert.ToBoolean(o))
    // Do Something

如果该值不存在,则应返回包含值的对象或false。然后它会尝试将结果转换为bool并在转换后的结果为true时执行某些操作。

请参阅documentation of Registry class