private void App_Exit(object sender, ExitEventArgs e) { try { // グローバルキーフックを解除する SharlayanController.UnsubscribeKeyHook(); Config.Instance.Save(); ChatOverlaysController.Instance.Stop(); } finally { this.UnlockDuplicateStart(); AppLogger.Write("RINGS End."); AppLogger.Flush(); } }
private void App_DispatcherUnhandledException( object sender, DispatcherUnhandledExceptionEventArgs e) { try { // グローバルキーフックを解除する SharlayanController.UnsubscribeKeyHook(); Config.Instance.Save(); if (this.MainWindow != null) { MessageBoxHelper.ShowDialogMessageWindow( "RINGS - Fatal", "予期しない例外を検知しました。アプリケーションを終了します。", e.Exception); } else { MessageBox.Show( "予期しない例外を検知しました。アプリケーションを終了します。\n\n" + e.Exception, "RINGS - Fatal", MessageBoxButton.OK, MessageBoxImage.Error); } } finally { this.UnlockDuplicateStart(); AppLogger.Fatal( "Unhandled Exception. 予期しない例外を検知しました。", e.Exception); AppLogger.Write("RINGS Abort."); AppLogger.Flush(); } }