我需要更改註冊表中的子項。使用C修改註冊表中的子項#
我GOOGLE了很多,並沒有找到任何方法來更改子項。
微軟是否支持此功能?
我能夠改變的鍵/值對,但使用這種
Registry.SetValue(keypath, subkey, Guid.NewGuid().ToString("B"));
我需要更改註冊表中的子項。使用C修改註冊表中的子項#
我GOOGLE了很多,並沒有找到任何方法來更改子項。
微軟是否支持此功能?
我能夠改變的鍵/值對,但使用這種
Registry.SetValue(keypath, subkey, Guid.NewGuid().ToString("B"));
您正在尋找RegistryKey.CreateSubKey
方法沒有子項。
例(從http://msdn.microsoft.com/en-us/library/ad51f2dx.aspx):
RegistryKey test9999 = Registry.CurrentUser.CreateSubKey("Test9999");
no..am尋找設置子項值 –
什麼是你想改變的子項?如果是名稱,則這是隻讀的,不能更改。 Regedit可以通過創建一個新密鑰重新命名密鑰,並單獨將每個子密鑰和值複製到新密鑰。
如果您嘗試更改「默認值」,請在設置時使用空白字符串作爲值名稱。
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);
}
}
這將創建一個子項。而我已經有一個子項,現在需要更改子項的名稱/值。 –
實際上,如果您查看代碼,它只會創建一個子鍵,如果其中一個不存在,則檢查OpenSubKey是否返回空值。 – ChrisBD
看這個問題:https://stackoverflow.com/questions/14170886/edit-registry-keys – boboes