Example #1
0
        public static void Add(
            ShiftSetting shift = ShiftSetting.False,
            QuickSetting quick = QuickSetting.False)
        {
            if (ApplicationHelper.IsUserAdministrator())
            {
                try { UnRegister(quick); } catch { }

                try
                {
                    Register(shift, quick);
                    MessageBox.Show(Resources.Strings.TipRegister, Resources.Strings.Title,
                                    MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message + "\n" + Resources.Strings.TipRunAsAdmin,
                                    Resources.Strings.Title, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            else
            {
                string cmd = CLIHelper.GenerateCmdReg(shift, quick);
                ApplicationHelper.StartSelf(cmd, true);
            }
        }
Example #2
0
        private static void UnRegister(QuickSetting quick = QuickSetting.False)
        {
            var key = Registry.ClassesRoot.OpenSubKey("Directory").OpenSubKey("Background").OpenSubKey("shell", true);

            key.DeleteSubKeyTree(GetLastSubKeyName(quick));

            key = Registry.ClassesRoot.OpenSubKey("Directory").OpenSubKey("shell", true);
            key.DeleteSubKeyTree(GetLastSubKeyName(quick));
        }
Example #3
0
        public static string GenerateCmdUnReg(QuickSetting quick = QuickSetting.False)
        {
            string cmd = CLIParams.UNREG + " ";

            if (quick == QuickSetting.True)
            {
                cmd += CLIParams.QUICK;
            }
            else
            {
                cmd += CLIParams.NORMAL;
            }

            return(cmd);
        }
Example #4
0
        private static void Register(
            ShiftSetting shift = ShiftSetting.False,
            QuickSetting quick = QuickSetting.False)
        {
            // Background
            var key    = Registry.ClassesRoot.OpenSubKey("Directory").OpenSubKey("Background").OpenSubKey("shell", true).CreateSubKey(GetLastSubKeyName(quick));
            var cmdKey = key.CreateSubKey("command");

            key.SetValue("Icon", Application.ExecutablePath);
            if (shift == ShiftSetting.True)
            {
                key.SetValue("Extended", "");
            }

            if (quick == QuickSetting.False)
            {
                key.SetValue("", Resources.Strings.MenuPasteAsFile);
                cmdKey.SetValue("", Application.ExecutablePath + " \"%V\"");
            }
            else
            {
                key.SetValue("", Resources.Strings.MenuQuickPasteAsFile);
                cmdKey.SetValue("", Application.ExecutablePath + " -q \"%V\"");
            }

            // shell
            key    = Registry.ClassesRoot.OpenSubKey("Directory").OpenSubKey("shell", true).CreateSubKey(GetLastSubKeyName(quick));
            cmdKey = key.CreateSubKey("command");
            key.SetValue("Icon", Application.ExecutablePath);
            if (shift == ShiftSetting.True)
            {
                key.SetValue("Extended", "");
            }


            if (quick == QuickSetting.False)
            {
                key.SetValue("", Resources.Strings.MenuPasteAsFile);
                cmdKey.SetValue("", Application.ExecutablePath + " \"%1\"");
            }
            else
            {
                key.SetValue("", Resources.Strings.MenuQuickPasteAsFile);
                cmdKey.SetValue("", Application.ExecutablePath + " -q \"%1\"");
            }
        }
        /// <summary>
        /// Save quick setting
        /// </summary>
        /// <param name="setting">Quick setting</param>
        public override void SaveQuickSetting(QuickSetting setting)
        {
            var fileName = Path.Combine(this.Folder, settingsFileName);

            var settings = FillQuickSettings(setting.Author) ?? new List <QuickSetting>();
            int idx      = -1;

            for (int index = 0; index < settings.Count; index++)
            {
                var s = settings[index];
                if (s.Author == setting.Author && s.SettingName == setting.SettingName)
                {
                    idx = index;
                    break;
                }
            }

            if (idx >= 0)
            {
                settings.RemoveAt(idx);
            }

            settings.Add(setting);

            using (var writer = new XmlTextWriter(fileName, Encoding.UTF8))
            {
                writer.Formatting  = Formatting.Indented;
                writer.Indentation = 4;
                writer.WriteStartDocument(true);
                writer.WriteStartElement("QuickSettings");

                foreach (var s in settings)
                {
                    writer.WriteStartElement("item");
                    writer.WriteAttributeString("blogid", Blog.CurrentInstance.Id.ToString());
                    writer.WriteAttributeString("author", s.Author);
                    writer.WriteAttributeString("name", s.SettingName);
                    writer.WriteAttributeString("value", s.SettingValue);
                    writer.WriteEndElement();
                }

                writer.WriteEndElement();
            }
        }
Example #6
0
 public static bool NeedShiftKey(QuickSetting fast = QuickSetting.False)
 {
     try
     {
         var key = Registry.ClassesRoot.OpenSubKey("Directory").OpenSubKey("Background").OpenSubKey("shell").OpenSubKey(GetLastSubKeyName(fast));
         if (key != null)
         {
             string[] names = key.GetValueNames();
             return(names.Contains("Extended"));
         }
         else
         {
             return(false);
         }
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         return(false);
     }
 }
Example #7
0
        public static string GenerateCmdReg(
            ShiftSetting shift = ShiftSetting.False,
            QuickSetting quick = QuickSetting.False)
        {
            string cmd = CLIParams.REG + " ";

            if (quick == QuickSetting.True)
            {
                cmd += CLIParams.QUICK;
            }
            else
            {
                cmd += CLIParams.NORMAL;
            }

            if (shift == ShiftSetting.True)
            {
                cmd += " " + CLIParams.SHIFT;
            }

            return(cmd);
        }
Example #8
0
 /// <summary>
 /// Save quick setting
 /// </summary>
 /// <param name="setting">Quick setting</param>
 public abstract void SaveQuickSetting(QuickSetting setting);
Example #9
0
 /// <summary>
 /// Saves a QuickSetting.
 /// </summary>
 /// <param name="setting">The QuickSetting to save.</param>
 public static void SaveQuickSetting(QuickSetting setting)
 {
     Provider.SaveQuickSetting(setting);
 }
Example #10
0
 /// <summary>
 /// Save quick setting
 /// </summary>
 /// <param name="setting">Quick setting</param>
 public abstract void SaveQuickSetting(QuickSetting setting);
Example #11
0
 /// <summary>
 /// Saves a QuickSetting.
 /// </summary>
 /// <param name="setting">The QuickSetting to save.</param>
 public static void SaveQuickSetting(QuickSetting setting)
 {
     Provider.SaveQuickSetting(setting);
 }
Example #12
0
 private static string GetLastSubKeyName(QuickSetting quick)
 {
     return(QuickSetting.True == quick ? "PasteExFast" : "PasteEx");
 }