2011-11-04 31 views
1

我需要更改註冊表中的子項。使用C修改註冊表中的子項#

我GOOGLE了很多,並沒有找到任何方法來更改子項。

微軟是否支持此功能?

我能夠改變的鍵/值對,但使用這種

Registry.SetValue(keypath, subkey, Guid.NewGuid().ToString("B")); 
+0

看這個問題:https://stackoverflow.com/questions/14170886/edit-registry-keys – boboes

回答

1

什麼是你想改變的子項?如果是名稱,則這是隻讀的,不能更改。 Regedit可以通過創建一個新密鑰重新命名密鑰,並單獨將每個子密鑰和值複製到新密鑰。

0

如果您嘗試更改「默認值」,請在設置時使用空白字符串作爲值名稱。

0
static void WriteRegistry(RegistryKey parentKey, String subKey, String valueName, Object value) 
{ 
     RegistryKey key; 
    try 
    { 
     key = parentKey.OpenSubKey(subKey, true); 
     if(key == null) //If the key doesn't exist. 
       { 
      key = parentKey.CreateSubKey(subKey); 
       } 

     //Set the value. 
     key.SetValue(valueName, value); 

     Console.WriteLine("Value:{0} for {1} is successfully written.", value, valueName); 
    } 
    catch(Exception e) 
    { 
     Console.WriteLine("Error occurs in WriteRegistry" + e.Message); 
    } 
} 
+0

這將創建一個子項。而我已經有一個子項,現在需要更改子項的名稱/值。 –

+0

實際上,如果您查看代碼,它只會創建一個子鍵,如果其中一個不存在,則檢查OpenSubKey是否返回空值。 – ChrisBD