Freigeben über


Application.SessionEnding Ereignis

Definition

Tritt ein, wenn ein Benutzer die Windows-Sitzung beendet, indem er sich abmeldet oder das Betriebssystem herunterfährt.

public:
 event System::Windows::SessionEndingCancelEventHandler ^ SessionEnding;
public event System.Windows.SessionEndingCancelEventHandler SessionEnding;
member this.SessionEnding : System.Windows.SessionEndingCancelEventHandler 
Public Custom Event SessionEnding As SessionEndingCancelEventHandler 

Ereignistyp

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie das SessionEnding Ereignis behandelt und dem Benutzer ermöglicht wird, es abzubrechen.

<Application 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="SDKSample.App"
    StartupUri="MainWindow.xaml"
    SessionEnding="App_SessionEnding" />
using System.Windows;

namespace SDKSample
{
    public partial class App : Application
    {
        void App_SessionEnding(object sender, SessionEndingCancelEventArgs e)
        {
            // Ask the user if they want to allow the session to end
            string msg = string.Format("{0}. End session?", e.ReasonSessionEnding);
            MessageBoxResult result = MessageBox.Show(msg, "Session Ending", MessageBoxButton.YesNo);

            // End session, if specified
            if (result == MessageBoxResult.No)
            {
                e.Cancel = true;
            }
        }
    }
}

Imports System.Windows

Namespace SDKSample
    Partial Public Class App
        Inherits Application
        Private Sub App_SessionEnding(ByVal sender As Object, ByVal e As SessionEndingCancelEventArgs)
            ' Ask the user if they want to allow the session to end
            Dim msg As String = String.Format("{0}. End session?", e.ReasonSessionEnding)
            Dim result As MessageBoxResult = MessageBox.Show(msg, "Session Ending", MessageBoxButton.YesNo)

            ' End session, if specified
            If result = MessageBoxResult.No Then
                e.Cancel = True
            End If
        End Sub
    End Class
End Namespace

Hinweise

Standardmäßig wird eine Anwendung heruntergefahren, wenn die Windows-Sitzung endet. Dies tritt auf, wenn sich ein Benutzer abmeldet oder herunterfährt. In diesem Fall fordert Windows jede geöffnete Anwendung zum Herunterfahren auf. Es ist jedoch möglich, dass eine Anwendung in diesem Fall möglicherweise nicht zum Herunterfahren bereit ist. Beispielsweise kann eine Anwendung Daten aufweisen, die sich in einem inkonsistenten Zustand oder in der Mitte eines lang andauernden Vorgangs befinden. In diesen Situationen kann es wünschenswert sein, das Beenden der Sitzung zu verhindern, und möglicherweise ist es wünschenswerter, Benutzern die Möglichkeit zu geben, zu entscheiden, ob die Sitzung beendet werden soll oder nicht.

Sie können erkennen, wann eine Sitzung endet, indem Sie das SessionEnding Ereignis behandeln. Wenn eine Anwendung verhindern muss, dass die Sitzung beendet wird, macht das SessionEndingCancelEventArgs Argument, das an den Ereignishandler übergeben wird, den verfügbar, den Cancel Sie auf festgelegt haben true (der Standardwert ist false).

Wenn SessionEnding nicht behandelt wird oder ohne Abbruch behandelt wird, wird aufgerufen, Shutdown und das Exit Ereignis wird ausgelöst.

Um weitere Informationen darüber zu erhalten, warum die Sitzung beendet wird, kann eine Anwendung untersuchen ReasonSessionEnding, was einer der ReasonSessionEnding Werte (ReasonSessionEnding.Logoff und ReasonSessionEnding.Shutdown) ist.

SessionEnding wird nicht von Konsolenanwendungen ausgelöst.

SessionEnding wird nur für den Thread ausgelöst, der das Application -Objekt erstellt.

SessionEnding wird für XAML-Browseranwendungen (XBAPs) nicht ausgelöst.

Gilt für:

Weitere Informationen