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(); //} }