Exemple #1
0
        protected virtual void OnStart(string[] args)
        {
            if (ChoApplication.ApplicationMode != ChoApplicationMode.Service)
            {
                if (_idleTask != null)
                {
                    _idleTask.Stop();
                }

                if (this is IChoWinFormApp)
                {
                    ApplicationContext = new ChoApplicationContext(this as IChoWinFormApp);
                }
                else
                {
                    ApplicationContext = new ChoApplicationContext(null);
                }

                if (ApplicationContext != null)
                {
                    //ApplicationContext.Visible = true;
                    Application.Run(ApplicationContext);
                }
                OnStop();
            }
            else
            {
                _idleTask = new ChoIdleTask();
                _idleTask.Start();
            }
        }
        private void PostStart()
        {
            if (ChoApplication.ServiceInstallation)
            {
                return;
            }

            if (ChoApplication.ApplicationMode != ChoApplicationMode.Service)
            {
                if (_idleTask != null)
                {
                    _idleTask.Stop();
                }

                if (ChoApplication.ApplicationMode == ChoApplicationMode.Windows)
                {
                    WinApp = ApplicationObject as System.Windows.Application;
                    //if (WinApp == null)
                    //    WinApp = ChoWPFDefaultApplication.Default;

                    if (WinApp != null)
                    {
                        WinApp.DispatcherUnhandledException += new System.Windows.Threading.DispatcherUnhandledExceptionEventHandler(ChoApplication.Current_DispatcherUnhandledException);
                    }

                    if (ChoApplication.WindowsAppType == ChoWindowsAppType.WinForms)
                    {
                        ApplicationContext = new ChoApplicationContext(this);
                        ApplicationContext.Run();
                        //System.Windows.Forms.Application.Run(ApplicationContext);
                    }
                    else if (ChoApplication.WindowsAppType == ChoWindowsAppType.WPF)
                    {
                        ApplicationContext = new ChoApplicationContext(this);
                        ApplicationContext.Run();

                        //if (!ChoGlobalApplicationSettings.Me.TrayApplicationBehaviourSettings.TurnOn)
                        //    WinApp.Run(GetMainWindowObject() as Window);
                        //else
                        //{
                        //    ApplicationContext = new ChoApplicationContext(this);
                        //    ApplicationContext.Run();
                        //    System.Windows.Forms.Application.Run(ApplicationContext);
                        //}
                    }
                    else
                    {
                        if (ChoGlobalApplicationSettings.Me.TrayApplicationBehaviourSettings.TurnOn)
                        {
                            ApplicationContext = new ChoApplicationContext(this);
                            ApplicationContext.Run();
                            //ApplicationContext = new ChoApplicationContext(this);
                            //System.Windows.Forms.Application.Run(ApplicationContext);
                        }
                    }
                }
                else
                {
                    if (ChoGlobalApplicationSettings.Me.TrayApplicationBehaviourSettings.TurnOn)
                    {
                        ApplicationContext = new ChoApplicationContext(this);
                        if (ChoGlobalApplicationSettings.Me.TrayApplicationBehaviourSettings.TurnOn)
                        {
                            System.Windows.Forms.Application.Run(ApplicationContext);
                        }
                    }
                }
            }

            //if (ChoApplication.ApplicationMode != ChoApplicationMode.Service)
            //{
            //    if (_idleTask != null)
            //        _idleTask.Stop();

            //    if (ChoApplication.ApplicationMode == ChoApplicationMode.Windows)
            //    {
            //        ApplicationContext = new ChoApplicationContext(this);
            //        System.Windows.Forms.Application.Run(ApplicationContext);

            //        OnStop();
            //    }
            //else
            //{
            //    if (ChoApplication.ApplicationMode == ChoApplicationMode.Windows)
            //    {
            //        if (ChoApplication.WindowsAppType == ChoWindowsAppType.WinForms)
            //        {
            //            ApplicationContext = new ChoApplicationContext(this);
            //            System.Windows.Forms.Application.Run(ApplicationContext);
            //        }
            //        else if (ChoApplication.WindowsAppType == ChoWindowsAppType.WPF)
            //        {
            //            System.Windows.Application app = ApplicationObject as System.Windows.Application;
            //            if (app == null)
            //            {
            //                ApplicationContext = new ChoApplicationContext(this);
            //                System.Windows.Forms.Application.Run(ApplicationContext);
            //            }
            //            else
            //            {
            //                app.DispatcherUnhandledException += new System.Windows.Threading.DispatcherUnhandledExceptionEventHandler(ChoApplication.Current_DispatcherUnhandledException);
            //                app.Run(MainWindowObject as Window);
            //            }
            //        }
            //    }
            //}

            //if (ChoApplication.ApplicationMode == ChoApplicationMode.Windows
            //    || ChoGlobalApplicationSettings.Me.TrayApplicationBehaviourSettings.TurnOn)
            //{
            //    //if (this.MainWindow == null)
            //    //    throw new ChoApplicationException("Missing main window. Windows application must have main window specified.");

            //    //app = SystemApp as System.Windows.Application;
            //    ApplicationContext = new ChoApplicationContext(this);
            //    System.Windows.Forms.Application.Run(ApplicationContext);

            //    OnStop();
            //}
            //else
            //{
            //    ApplicationContext = new ChoApplicationContext(null);
            //}

            //if (ApplicationContext != null)
            //{
            //    //ApplicationContext.Visible = true;
            //    if (ChoApplication.WindowsAppType == ChoWindowsAppType.WPF && app != null)
            //    {
            //        //if (app == null)
            //        //    throw new ChoApplicationException("Missing System.Windows.Application object.");

            //        if (System.Windows.Application.Current != null)
            //            System.Windows.Application.Current.DispatcherUnhandledException += new System.Windows.Threading.DispatcherUnhandledExceptionEventHandler(ChoApplication.Current_DispatcherUnhandledException);

            //        app.Run(MainWindow as Window);
            //    }
            //    else if (ChoApplication.WindowsAppType == ChoWindowsAppType.WinForms
            //        || ChoApplication.ApplicationMode != ChoApplicationMode.Console)
            //        System.Windows.Forms.Application.Run(ApplicationContext);

            //    OnStop();
            //}
            //}
            //else
            //{
            //    //_idleTask = new ChoIdleTask();
            //    //_idleTask.Start();
            //}
        }