Пример #1
0
        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;
                }
            }
        }
Пример #2
0
        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);
            }
        }