C# 使用C检查键值是否存在#

C# 使用C检查键值是否存在#,c#,visual-studio,C#,Visual Studio,我有一把钥匙 “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\{4CHJHHDJHJHDJS-SDGSJAD}” 在我的登记处。使用 Registry.GetValue("keyname", "valuename", "default value") 我可以检索它的任何值。但是我需要检查注册表中是否存在“{4cjhhsdjhdjs-SDGSJAD}”。有人能建议我用什么支票来做这件事吗 使用注册表项,

我有一把钥匙

“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\{4CHJHHDJHJHDJS-SDGSJAD}”

在我的登记处。使用

Registry.GetValue("keyname", "valuename", "default value")

我可以检索它的任何值。但是我需要检查注册表中是否存在“{4cjhhsdjhdjs-SDGSJAD}”。有人能建议我用什么支票来做这件事吗

使用注册表项,您可以尝试使用
OpenSubKey
方法获取注册表项。如果返回值为
null
,则该键不存在。我说的是关键,不是价值

在您的示例中,这可以归结为:

var key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Uninstall\{4CHJHSDJHSJHDJS-SDGSJAD}");
if (key == null)
{
    // Key does not exist
}
else
{
    // Key exists
}
你试过这个吗

          using Microsoft.Win32;
          RegistryKey myregistry = Registry.CurrentUser.OpenSubKey("MyKey");
          if (myregistry != null)
          {
           string Value=myregistry.GetValue("ID").ToString();
          }

您可以使用
Registry.CurrentUser
查询注册表项,然后使用
OpenSubKey

RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Uninstall\{4CHJHSDJHSJHDJS-SDGSJAD}");

if (key != null)
{
    // key exists
}
else
{
    // key does not exists
}

检查注册表.GetValue中的返回值,如果它不是预期的,那么它不存在?我当前正在使用注册表.GetValue。我可以从这个键值中检索任何值,但不管它是否存在。可能重复的是我得到了它。早些时候,我遇到了语法错误问题。谢谢大家!!