2009-12-16 80 views
0

我想獲取值並將值設置爲註冊表。註冊表GetValue函數

當我試圖訪問不在註冊表中的路徑時,我正在閱讀。

但是,當我使用Registry.SetValue(keyName, "", 0);設置路徑時,所有工作正常,我可以從中獲取不存在的值。

任何想法,爲什麼我不能使用我的public int GetComponent(string RegKey)功能在修女現有的路徑?

using System; 
using System.Collections.Generic; 
using System.Text; 
using Microsoft.Win32; 


namespace LP_Misc 
{ 
    public class LP_Registery 
    { 
     private const string userRoot = "HKEY_CURRENT_USER"; 
     private const string subkey = @"Software\PCBMatrix\LPWizard"; 
     private string keyName ; 

     public LP_Registery(string folderName) 
     { 
      keyName = userRoot + "\\" + subkey + "\\" + folderName; 
      //Registry.SetValue(keyName, "", 0); 

     } 
     public int GetComponent(string RegKey) 
     { 
      return (int)Registry.GetValue(keyName, RegKey, 0); 

     } 
     public void SetComponent(string RegKey, int RegVal) 
     { 
      Registry.SetValue(keyName, RegKey, RegVal, RegistryValueKind.DWord); 
     } 



    } 
} 

如果可能我應該怎麼做,這將是可能的。

謝謝。

回答

1

圍繞着GetValue與try - catch塊並享受編碼。

例外和條件的GetValue

拋出:SecurityException: 的用戶沒有從註冊表鍵讀取所需的權限。

IOException異常:那 包含指定值的RegistryKey已 標記爲刪除。

ArgumentException:keyName不是 以有效的註冊表根開頭。


的SetValue方法:

設置上 指定的註冊表項指定的名稱/值對。 如果指定的密鑰 不存在,則創建 。