static void Main(string [] stringargs)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            NativeMethods.STARTUPINFO_I si2 = new NativeMethods.STARTUPINFO_I();
            UnsafeNativeMethods.GetStartupInfo(si2);

            CommandArgs args = new CommandArgs(stringargs);
            string      arg1 = args.Next();
            Type        t    = Type.GetType("TestExtendedControls." + arg1);

            if (t == null)
            {
                t = Type.GetType("TestExtendedControls.Test" + arg1);
            }

            if (t != null)
            {
                Application.Run((Form)Activator.CreateInstance(t));
            }
            else
            {
                Application.Run(new TestButtons());
            }
        }
Exemple #2
0
        // Initialize everything on the UI thread, and report+die for any problems or SwitchContext from SplashForm to EDDiscoveryForm.
        private void MainEngineStart(object sender, EventArgs e)
        {
            var tim = (Timer)sender;

            tim?.Stop();

            var launchArg = ((EDDFormLaunchArgs)tim?.Tag)?.Clone() ?? new EDDFormLaunchArgs();

            tim?.Dispose();

            EDDiscoveryForm EDDMainForm = null;

            try
            {
                EDDMainForm = new EDDiscoveryForm();
                SetLoadingMsg("Starting EDD");

                EDDiscoveryController.Initialize(SetLoadingMsg);   // this loads up the options

                EDDOptions.Instance.NoWindowReposition |= launchArg.PositionReset;
                EDDOptions.Instance.NoTheme            |= launchArg.ThemeReset;
                EDDOptions.Instance.TabsReset          |= launchArg.TabsReset;
                EDDOptions.Instance.ResetLanguage      |= launchArg.ResetLang;

                EDDMainForm.Init(SetLoadingMsg);    // call the init function, which will initialize the eddiscovery form

                if (Environment.OSVersion.Platform == PlatformID.Win32NT)
                {
                    NativeMethods.STARTUPINFO_I si = new NativeMethods.STARTUPINFO_I();
                    UnsafeNativeMethods.GetStartupInfo(si);        // duplicate of form.cs WmCreate check of code.

                    if ((si.dwFlags & NativeMethods.STARTF_USESHOWWINDOW) != 0)
                    {
                        if (si.wShowWindow == NativeMethods.SW_MINIMIZE || si.wShowWindow == NativeMethods.SW_SHOWMINNOACTIVE)
                        {
                            EDDOptions.Instance.MinimiseOnOpen = true;
                        }
                        else if (si.wShowWindow == NativeMethods.SW_SHOWMAXIMIZED || si.wShowWindow == NativeMethods.SW_MAXIMIZE)
                        {
                            EDDOptions.Instance.MaximiseOnOpen = true;
                        }
                    }
                }

                SetLoadingMsg("Starting Program");
                SwitchContext(EDDMainForm);         // Ignition, and liftoff!
            }
            catch (Exception ex)
            {   // There's so many ways that things could go wrong during init; let's fail for everything!
                EDDMainForm?.Dispose();
                BaseUtils.ExceptionForm.ShowException(ex, "A fatal exception was encountered while initializing EDDiscovery.", Properties.Resources.URLProjectFeedback, isFatal: true, parent: MainForm);
            }
        }
        // Initialize everything on the UI thread, and report+die for any problems or SwitchContext from SplashForm to EDDiscoveryForm.
        private void InitialiseEDD(object sender, EventArgs e)
        {
            var tim = (Timer)sender;

            tim?.Stop();

            var launchArg = ((EDDFormLaunchArgs)tim?.Tag)?.Clone() ?? new EDDFormLaunchArgs();

            tim?.Dispose();

            EDDiscoveryForm EDDMainForm = null;

            try
            {
                System.Threading.Thread.CurrentThread.Name = "EDD Main Thread";

                EDDMainForm = new EDDiscoveryForm();

                SetLoadingMsg("Initialising Databases");

                UserDatabase.Instance.Name          = "UserDB";
                UserDatabase.Instance.MinThreads    = 1;
                UserDatabase.Instance.MaxThreads    = 2;
                UserDatabase.Instance.MultiThreaded = true;     // starts up the threads

                SystemsDatabase.Instance.Name          = "SystemDB";
                SystemsDatabase.Instance.MinThreads    = 1;
                SystemsDatabase.Instance.MaxThreads    = 8;
                SystemsDatabase.Instance.MultiThreaded = true;  // starts up the threads

                try
                {
                    UserDatabase.Instance.Initialize();
                }
                catch (Exception ex)
                {
                    EliteDangerousCore.DB.UserDatabase.Instance.ClearDown();     // need everything closed down

                    System.Windows.Forms.MessageBox.Show("Error: User DB is corrupt at " + EliteDangerousCore.EliteConfigInstance.InstanceOptions.UserDatabasePath + Environment.NewLine + Environment.NewLine +
                                                         "Database is unusable. Use safe mode to remove it and start again. All user settings will be lost" + Environment.NewLine + Environment.NewLine +
                                                         ex.Message.ToString(),
                                                         "User DB corrupt", System.Windows.Forms.MessageBoxButtons.OK);
                    SwitchContext(new SafeModeForm(false));
                    return;
                }

                try
                {
                    SystemsDatabase.Instance.Initialize();
                }
                catch (Exception ex)
                {
                    EliteDangerousCore.DB.UserDatabase.Instance.ClearDown();     // need everything closed down
                    EliteDangerousCore.DB.SystemsDatabase.Instance.ClearDown();

                    System.Windows.Forms.MessageBox.Show("Error: System DB is corrupt at " + EliteDangerousCore.EliteConfigInstance.InstanceOptions.SystemDatabasePath + Environment.NewLine + Environment.NewLine +
                                                         "Database is unusable. Use safe mode to remove it and start again. User settings will be retained" + Environment.NewLine + Environment.NewLine +
                                                         ex.Message.ToString(),
                                                         "System DB corrupt", System.Windows.Forms.MessageBoxButtons.OK);
                    SwitchContext(new SafeModeForm(false));
                    return;
                }

                EDDOptions.Instance.NoWindowReposition |= launchArg.PositionReset;
                EDDOptions.Instance.NoTheme            |= launchArg.ThemeReset;
                EDDOptions.Instance.TabsReset          |= launchArg.TabsReset;
                EDDOptions.Instance.ResetLanguage      |= launchArg.ResetLang;

                SetLoadingMsg("Starting EDD");

                EDDMainForm.Init(SetLoadingMsg);    // call the init function, which will initialize the eddiscovery system

                if (Environment.OSVersion.Platform == PlatformID.Win32NT)
                {
                    NativeMethods.STARTUPINFO_I si = new NativeMethods.STARTUPINFO_I();
                    UnsafeNativeMethods.GetStartupInfo(si);        // duplicate of form.cs WmCreate check of code.

                    if ((si.dwFlags & NativeMethods.STARTF_USESHOWWINDOW) != 0)
                    {
                        if (si.wShowWindow == NativeMethods.SW_MINIMIZE || si.wShowWindow == NativeMethods.SW_SHOWMINNOACTIVE)
                        {
                            EDDOptions.Instance.MinimiseOnOpen = true;
                        }
                        else if (si.wShowWindow == NativeMethods.SW_SHOWMAXIMIZED || si.wShowWindow == NativeMethods.SW_MAXIMIZE)
                        {
                            EDDOptions.Instance.MaximiseOnOpen = true;
                        }
                    }
                }


                SetLoadingMsg("Starting Program");
                SwitchContext(EDDMainForm);         // Ignition, and liftoff!
            }
            catch (Exception ex)
            {   // There's so many ways that things could go wrong during init; let's fail for everything!
                BaseUtils.ExceptionForm.ShowException(ex, "A fatal exception was encountered while initializing EDDiscovery.", Properties.Resources.URLProjectFeedback, isFatal: true, parent: MainForm);
                EDDMainForm?.Dispose();
            }
        }