Ejemplo n.º 1
0
        public static void Delete(FastSetting fast = FastSetting.False)
        {
            if (IsUserAdministrator())
            {
                try
                {
                    UnRegister(fast);
                    MessageBox.Show(Resources.Strings.TipUnRegister, 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 = "/unreg";
                if (fast == FastSetting.True)
                {
                    cmd += " /fast";
                }

                StartSelf(cmd);
            }
        }
Ejemplo n.º 2
0
        public static void Add(
            ShiftSetting shift = ShiftSetting.False,
            FastSetting fast   = FastSetting.False)
        {
            if (ApplicationHelper.IsUserAdministrator())
            {
                try { UnRegister(fast); } catch { }

                try
                {
                    Register(shift, fast);
                    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 = "/reg";
                if (shift == ShiftSetting.True)
                {
                    cmd += " /shift";
                }
                if (fast == FastSetting.True)
                {
                    cmd += " /fast";
                }

                ApplicationHelper.StartSelf(cmd, true);
            }
        }
Ejemplo n.º 3
0
        private static void UnRegister(FastSetting fast = FastSetting.False)
        {
            var key = Registry.ClassesRoot.OpenSubKey("Directory").OpenSubKey("Background").OpenSubKey("shell", true);

            key.DeleteSubKeyTree(GetLastSubKeyName(fast));

            key = Registry.ClassesRoot.OpenSubKey("Directory").OpenSubKey("shell", true);
            key.DeleteSubKeyTree(GetLastSubKeyName(fast));
        }
Ejemplo n.º 4
0
        private static void Register(
            ShiftSetting shift = ShiftSetting.False,
            FastSetting fast   = FastSetting.False)
        {
            // Background
            var key    = Registry.ClassesRoot.OpenSubKey("Directory").OpenSubKey("Background").OpenSubKey("shell", true).CreateSubKey(GetLastSubKeyName(fast));
            var cmdKey = key.CreateSubKey("command");

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

            if (fast == FastSetting.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(fast));
            cmdKey = key.CreateSubKey("command");
            key.SetValue("Icon", Application.ExecutablePath);
            if (shift == ShiftSetting.True)
            {
                key.SetValue("Extended", "");
            }


            if (fast == FastSetting.False)
            {
                key.SetValue("", Resources.Strings.MenuPasteAsFile);
                cmdKey.SetValue("", Application.ExecutablePath + " \"%1\"");
            }
            else
            {
                key.SetValue("", Resources.Strings.MenuQuickPasteAsFile);
                cmdKey.SetValue("", Application.ExecutablePath + " /q \"%1\"");
            }
        }
Ejemplo n.º 5
0
 public static bool NeedShiftKey(FastSetting fast = FastSetting.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);
     }
 }
Ejemplo n.º 6
0
 private static string GetLastSubKeyName(FastSetting fast)
 {
     return(FastSetting.True == fast ? "PasteExFast" : "PasteEx");
 }