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); } }
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)); }
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); }
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(); } }
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); } }
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); }
/// <summary> /// Save quick setting /// </summary> /// <param name="setting">Quick setting</param> public abstract void SaveQuickSetting(QuickSetting setting);
/// <summary> /// Saves a QuickSetting. /// </summary> /// <param name="setting">The QuickSetting to save.</param> public static void SaveQuickSetting(QuickSetting setting) { Provider.SaveQuickSetting(setting); }
private static string GetLastSubKeyName(QuickSetting quick) { return(QuickSetting.True == quick ? "PasteExFast" : "PasteEx"); }