Application.SessionEnding Ereignis
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.