public static void UpdateToOmniMIDI() { String UPSource = Environment.GetEnvironmentVariable("USERPROFILE") + "\\Keppy's Synthesizer\\"; String UPDestination = Environment.GetEnvironmentVariable("USERPROFILE") + "\\OmniMIDI\\"; String[] OldLists = { UPDestination + "lists\\keppymidi.sflist", UPDestination + "lists\\keppymidib.sflist", UPDestination + "lists\\keppymidic.sflist", UPDestination + "lists\\keppymidid.sflist", UPDestination + "lists\\keppymidie.sflist", UPDestination + "lists\\keppymidif.sflist", UPDestination + "lists\\keppymidig.sflist", UPDestination + "lists\\keppymidih.sflist", UPDestination + "lists\\keppymidii.sflist", UPDestination + "lists\\keppymidij.sflist", UPDestination + "lists\\keppymidik.sflist", UPDestination + "lists\\keppymidil.sflist", UPDestination + "lists\\keppymidim.sflist", UPDestination + "lists\\keppymidin.sflist", UPDestination + "lists\\keppymidio.sflist", UPDestination + "lists\\keppymidip.sflist", }; RegistryKey Source = Registry.CurrentUser.CreateSubKey("SOFTWARE\\Keppy's Synthesizer"); if (Source != null) { RegistryKey Destination = Registry.CurrentUser.CreateSubKey("SOFTWARE\\OmniMIDI"); Source.CopyTo(Destination); Source.Close(); Destination.Close(); try { Registry.CurrentUser.DeleteSubKeyTree("SOFTWARE\\Keppy's Synthesizer", true); } catch { } } if (Directory.Exists(UPSource)) { try { Directory.Delete(UPDestination, true); Directory.Move(UPSource, UPDestination); Directory.Delete(UPSource, true); } catch { } } // Some files try { File.Move(UPDestination + "\\keppymididrv.favlist", UPDestination + "\\OmniMIDI.favlist"); } catch { } try { File.Move(UPDestination + "\\blacklist\\keppymididrv.blacklist", UPDestination + "\\blacklist\\OmniMIDI.blacklist"); } catch { } // SF lists for (int i = 0; i < OldLists.Length; i++) { try { File.Move(OldLists[i], OmniMIDIConfiguratorMain.ListsPath[i]); } catch { } try { File.Delete(String.Format("{0}{1}", UPDestination, Path.GetFileName(OldLists[i]))); } catch { } } }
public static void CopyTo(this RegistryKey srcKey, RegistryKey dstKey) { foreach (string name in srcKey.GetValueNames()) { dstKey.SetValue(name, srcKey.GetValue(name), srcKey.GetValueKind(name)); } foreach (string name in srcKey.GetSubKeyNames()) { using (RegistryKey srcSubKey = srcKey.OpenSubKey(name)) using (RegistryKey dstSubKey = dstKey.CreateSubKey(name, true)) srcSubKey.CopyTo(dstSubKey); } }
public static void MoveTo(this RegistryKey src, RegistryKey dst) { src.CopyTo(dst); src.Delete(); }