示例#1
0
        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 { }
            }
        }
示例#2
0
 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);
     }
 }
示例#3
0
 public static void MoveTo(this RegistryKey src, RegistryKey dst)
 {
     src.CopyTo(dst);
     src.Delete();
 }