private void RenameRegistryKey() { Logger.Write("Rename Registry."); try { if (RegKey.EndsWith(@"\")) { RegKey = RegKey.Substring(0, RegKey.Length - 1); } Logger.Write("Will try to rename " + RegHive + "\\" + RegKey + " into : " + RegName); RegistryKey parentKey = GetRegistryHive().OpenSubKey(RegKey.Substring(0, RegKey.LastIndexOf(@"\")), true); string subKeyName = RegKey.Substring(RegKey.LastIndexOf(@"\") + 1); CopyKey(parentKey, subKeyName, RegName); parentKey.DeleteSubKeyTree(subKeyName); parentKey.Flush(); parentKey.Close(); } catch (Exception ex) { Logger.Write("Error renaming Registry Key : " + RegHive + "\\" + RegKey + "\r\n" + ex.Message); } }