2013-04-08 76 views
3

我有一個關鍵的檢查鍵值是否存在,或者不使用C#

「HKEY_CURRENT_USER \軟件\微軟\的Windows \ CurrentVersion \卸載\ {4CHJHSDJHSJHDJS-SDGSJAD}」

我註冊表中。使用

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

我可以檢索它的任何值。但是我需要檢查註冊表中是否存在「{4CHJHSDJHSJHDJS-SDGSJAD}」。有人可以建議我用什麼檢查來做這件事嗎?

+2

檢查'Registry.GetValue'的返回值,如果它不是預期的那麼它不存在? – DGibbs 2013-04-08 08:49:11

+1

我目前使用Registry.GetValue。我可以從這個鍵值中檢索任何值,但不能判斷它是否存在。 – Arti 2013-04-08 08:50:47

+0

可能的重複[如何檢查註冊表值是否存在使用C#?](http://stackoverflow.com/questions/4276138/how-to-check-if-a-registry-value-exists-using-c) – 2013-04-08 08:56:28

回答

7

使用註冊表項,您可以嘗試使用OpenSubKey方法獲取它。如果返回的值是null,那麼密鑰不存在。我在這裏談論鑰匙,而不是價值觀。

在你的榜樣,這將回落到:

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

是的,我知道了。之前我遇到了語法錯誤問題。謝謝! – Arti 2013-04-08 08:55:45

3

你有沒有試過這種

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

您可以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 
} 
相關問題