protected override void OnExit(ExitEventArgs e) { ArchetypeManager.Stop(); ReplayUploader.Stop(); ProcessMonitor.Stop(); GameMessageDispatcher.Stop(); mutex.Dispose(); base.OnExit(e); }
protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); if (e.Args.Contains("--debug")) { Logger.DebugMode = true; } AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionHandler; mutex = new Mutex(true, "Local\\DeckTracker", out bool isNew); if (!isNew) { MessageBox.Show("Universal Deck Tracker is already running..."); Shutdown(); } JsonConvert.DefaultSettings = () => { var settings = new JsonSerializerSettings(); settings.Converters.Add(new StringEnumConverter()); return(settings); }; Logger.Initialize(); ConfigManager.Initialize(); ReplayUploader.Initialize(); ArchetypeManager.Initialize(); try { DeckClassifier.Initialize(); } catch (Exception exception) { MessageBox.Show(exception.Message); Shutdown(); } GameMessageDispatcher.Start(); ProcessMonitor.Start(); #if !DEBUG UpdateManager.StartUpdateCheck(); #endif }