public Tweak(string lebel, TweakType type, WinVer ver) { //guid = Guid.NewGuid(); Name = lebel; Type = type; winVer = ver; }
public static DialogResult ShowSelectConfigFileBox(Form Parent) { if (WinVer.IsVistaOrGreater()) { TaskDialog dlg = new TaskDialog(); dlg.SetIcon(TASKDIALOG_ICON.TD_INFORMATION_ICON); dlg.WindowTitle = "Open configuration file"; dlg.MainInstruction = "You will see this dialog if the configuration file (menu.xml) is missing from your system"; dlg.AddButton((int)DialogResult.Yes, "Create a config file").ShowShield = true; dlg.AddButton((int)DialogResult.No, "Open an existing config file"); dlg.CommonButtons = TASKDIALOG_COMMON_BUTTON_FLAGS.TDCBF_CANCEL_BUTTON; dlg.UseCommandLinks = true; return((DialogResult)dlg.ShowDialog(Parent.Handle)); } else { return(MessageBox.Show(Parent, "You will see this dialog if the configuration file (menu.xml) is missing from your system\n\nYes - Create a config file\nNo - Open an existing config file\nCancel - Quit", "Open configuration file", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information)); } }
public bool Load(XmlNode tweakNode) { if (tweakNode.Name != "Tweak") { return(false); } try { foreach (XmlNode node in tweakNode.ChildNodes) { /*if (node.Name == "Guid") * guid = Guid.Parse(node.InnerText); * else*/if (node.Name == "Category") { Category = node.InnerText; } else if (node.Name == "Group") { Group = node.InnerText; } else if (node.Name == "Name") { Name = node.InnerText; } else if (node.Name == "Type") { Type = (TweakType)Enum.Parse(typeof(TweakType), node.InnerText); } else if (node.Name == "Path") { Path = node.InnerText; } else if (node.Name == "Key") { Key = node.InnerText; } else if (node.Name == "Level") { usrLevel = node.InnerText.Equals("User"); } else if (node.Name == "ValueInt") { Value = int.Parse(node.InnerText); } else if (node.Name == "ValueU64") { Value = UInt64.Parse(node.InnerText); } else if (node.Name == "Value") { Value = node.InnerText; } else if (node.Name == "Platform") { winVer = WinVer.Parse(node.InnerText); } else if (node.Name == "Hint") { Hint = (Hints)Enum.Parse(typeof(Hints), node.InnerText); } else if (node.Name == "State") { State = (States)Enum.Parse(typeof(States), node.InnerText); } else if (node.Name == "FixFailed") { bool.TryParse(node.InnerText, out FixFailed); } else if (node.Name == "FixedCount") { int.TryParse(node.InnerText, out FixedCount); } else if (node.Name == "LastChange") { DateTime.TryParse(node.InnerText, out LastChangeTime); } } } catch { return(false); } return(Name != null && Type != TweakType.None && winVer != null); }
private void FormMain_Load(object sender, EventArgs e) { this.Icon = IconManager.GetIcon("shell32.dll", 39, true); if (!System.IO.File.Exists(Installer.GetMenu98Path())) { Installer.ShowInstaller(this); } if (WinVer.IsWin10OrGreater()) { Win10Style.EnableBlur(this.Handle); } else { checkBoxNoExplorerImmersiveMenu.Enabled = false; checkBoxEnableImmersiveMenu.Enabled = false; checkBoxShowIcon.Enabled = false; checkBoxHideToggleOption.Enabled = false; } if (WinVer.IsVistaOrGreater()) { //DPI.SetCurrentProcessDPIAware(); Win7Style.EnableAero(this.Handle, panelExtended.Height, panelMain.Bottom, 0, 0); toolStrip.Renderer = new ToolStripNonClientRender(); } else { toolStrip.Renderer = new ToolStripNonClientRender(SystemColors.Control); toolStrip.Location = new Point(toolStrip.Location.X, toolStrip.Location.Y - 1); this.FormBorderStyle = FormBorderStyle.FixedSingle; this.ControlBox = true; this.Height -= panelMain.Location.Y; this.panelMain.Location = new Point(panelMain.Location.X, 0); this.Text = labelCaption.Text; } panelFrameB.Visible = false; panelFrameT.Visible = false; panelFrameR.Visible = false; panelFrameL.Visible = false; pictureBoxAppIcon.BackgroundImage = this.Icon.ToBitmap(); contextMenuStrip.Renderer = new ToolStripNonClientRender(); comboBoxStyle.SelectedIndex = 0; FormUtils.ShowShield(buttonUpdateStartupCommand.Handle, true); FormUtils.ShowShield(buttonRemoveStartUp.Handle, true); for (int i = 0; i <= MenuControl.OSList.Length; i++) { comboBoxSysVer.Items.Add(MenuControl.GetOSFromIndex(i)); } comboBoxSysVer.SelectedIndex = MenuControl.Os2ListIndex(WinVer.SystemVersion); checkBoxNoExplorerImmersiveMenu.Checked = Installer.ExplorerImmersiveMenuRemoved(); if (System.IO.File.Exists(Installer.GetConfigPath())) { XML_Load(Installer.GetConfigPath()); } else { switch (Installer.ShowSelectConfigFileBox(this)) { case DialogResult.Yes: Installer.DeployDefaultConfigFile(); XML_Load(Installer.GetConfigPath()); break; case DialogResult.No: if (!OpenConfigUsingDialog()) { this.Close(); } break; case DialogResult.Cancel: this.Close(); break; } } }
private void ToolStripButtonHelp_Click(object sender, EventArgs e) { WinVer.ShowShellAboutBox(this, labelCaption.Text, "Author: Rikka0w0 (Github) \n" + "Some tweaks come from askvg.com"); }
public static void LaunchUninstall(Form Parent) { bool deleteConfig = false; if (WinVer.IsVistaOrGreater()) { TaskDialog dlg = new TaskDialog(); dlg.Icon = Properties.Resources.Installer.Handle; dlg.WindowTitle = "Uninstall"; dlg.MainInstruction = "Uninstall this software from your system"; dlg.Content = "This program will not be deleted."; dlg.AddButton((int)DialogResult.Yes, "Uninstall now").ShowShield = true; dlg.CommonButtons = TASKDIALOG_COMMON_BUTTON_FLAGS.TDCBF_CANCEL_BUTTON; dlg.UseCommandLinks = true; dlg.CheckBoxText = "Delete configuration file"; if (dlg.ShowDialog(Parent.Handle) == (int)DialogResult.Yes) { deleteConfig = dlg.CheckBoxChecked; } else { return; } } else { switch (MessageBox.Show(Parent, "Uninstall this software from your system.\nYes - Uninstall without deleting config file\nNo - Uninstall and delete the config file", "Uninstall", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)) { case DialogResult.Yes: deleteConfig = false; break; case DialogResult.No: deleteConfig = true; break; case DialogResult.Cancel: return; } } if (MenuControl.isMenu98ModuleLoaded()) { MenuControl.Menu98_ExitHost(); } try { UninstallFromSystem(deleteConfig); } catch (UnauthorizedAccessException) { UninstallWithPrivilage(deleteConfig); } catch (System.Security.SecurityException) { UninstallWithPrivilage(deleteConfig); } MessageBox.Show(Parent, "Uninstalled successfully", "Uninstall", MessageBoxButtons.OK, MessageBoxIcon.Information); Application.Exit(); }
public static void ShowInstaller(Form Parent) { string param = null; if (WinVer.IsVistaOrGreater()) { TaskDialog dlg = new TaskDialog(); dlg.Icon = Properties.Resources.Installer.Handle; dlg.WindowTitle = "Install TMT & Menu98"; dlg.MainInstruction = "Install TMT & Menu98"; dlg.Content = "This tweak requires <a href=\"https://www.microsoft.com/en-us/download/details.aspx?id=49984\">VC2015 runtime</a> installed!"; dlg.ExpandedControlText = "Start up parameter:"; dlg.OnRadioButtonSelected += InstallTD_OnRadioButtonSelected; dlg.OnHyperLinkClicked += InstallTD_OnHyperLinkClicked; for (int id = 0; id <= MenuControl.OSList.Length; id++) { dlg.AddRadioButton(id, MenuControl.GetOSFromIndex(id)); } dlg.SelectedRadioButton = MenuControl.Os2ListIndex(WinVer.SystemVersion); param = MenuControl.GetInjectParamFromIndex(dlg.SelectedRadioButton); if (param == null) { dlg.ExpandedInformation = "No startup"; } else { dlg.ExpandedInformation = param; } dlg.ExpandFooterAreaByDefault = true; dlg.AddButton(100, "Install Now").ShowShield = true; dlg.CommonButtons = TASKDIALOG_COMMON_BUTTON_FLAGS.TDCBF_CLOSE_BUTTON; dlg.UseCommandLinks = true; dlg.EnableHyperLinks = true; int ret = dlg.ShowDialog(Parent.Handle); if (ret != 100) { return; } param = MenuControl.GetInjectParamFromIndex(dlg.SelectedRadioButton); } else { switch (MessageBox.Show(Parent, "Yes - Install and auto startup\nNo - Just install", "Install Menu98", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information)) { case DialogResult.Yes: param = "!Button"; //Hard coding here break; case DialogResult.No: param = null; //Hard coding here break; default: return; } } try { InstallToSystem(WinVer.IsX64System()); if (param == null) { CreateRegConfig(param); } if (!System.IO.File.Exists(GetConfigPath())) { DeployDefaultConfigFile(); } } catch (UnauthorizedAccessException) { ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.UseShellExecute = true; startInfo.WorkingDirectory = Environment.CurrentDirectory; startInfo.FileName = Application.ExecutablePath; startInfo.Arguments = "INSTALL X" + (WinVer.IsX64System() ? "64" : "86") + " "; if (param == null) { startInfo.Arguments += "\"?\""; } else { startInfo.Arguments += "\"" + param + "\""; } startInfo.Verb = "runas"; try { System.Diagnostics.Process.Start(startInfo).WaitForExit(); } catch (System.ComponentModel.Win32Exception) { MessageBox.Show("This action requires administrative privilage!", "Fail to install", MessageBoxButtons.OK, MessageBoxIcon.Error); } } if (param != null) { MenuControl.Menu98_Inject(param); } }