Beispiel #1
0
        public static void StartUpdaterProcess(List <string> args, ExitAndRestartModeT mode)
        {
            string filename = Path.Combine(System.IO.Path.GetTempPath(), "OptionsOracle Updater.exe");

            try
            {
                File.Copy(OptionsOracleUpdaterFileName, filename, true);
            }
            catch { filename = OptionsOracleUpdaterFileName; }

            if (!File.Exists(filename))
            {
                filename = OptionsOracleUpdaterFileName;
            }

            Process pro = new Process();

            pro.StartInfo.WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory;
            pro.StartInfo.FileName         = filename;

            if (mode == ExitAndRestartModeT.ExitAndRestart)
            {
                args.Add("/run");
                args.Add(Application.ExecutablePath.Trim().TrimEnd(new char[] { '\\' }));
            }

            string arg_line = "";

            foreach (string arg in args)
            {
                if (arg.Trim().Contains(" "))
                {
                    arg_line += "\"" + arg.Trim() + "\" ";
                }
                else
                {
                    arg_line += arg.Trim() + " ";
                }
            }

            if (arg_line.Contains("/update") && System.Environment.OSVersion.Version.Major > 5)
            {
                pro.StartInfo.Verb            = "runas";
                pro.StartInfo.UseShellExecute = true;
            }

            pro.StartInfo.Arguments = arg_line.Trim();
            pro.Start();

            if (mode == ExitAndRestartModeT.Wait)
            {
                pro.WaitForExit();
            }

            if (mode == ExitAndRestartModeT.Exit || mode == ExitAndRestartModeT.ExitAndRestart)
            {
                Environment.Exit(0);
            }
        }
Beispiel #2
0
        public static bool ResetConfiguration(ExitAndRestartModeT mode)
        {
            List <string> args = new List <string>();

            try
            {
                args.Add(@"/reset");
                StartUpdaterProcess(args, mode);
            }
            catch { return(false); }

            // reset application settings as well
            Properties.Settings.Default.Reset();
            Properties.Settings.Default.Save();

            return(true);
        }