Application.SessionEnding Événement

Définition

Se produit lorsque l’utilisateur met fin à la session Windows en désactivant ou en arrêtant le système d’exploitation.

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

Type d'événement

Exemples

L’exemple suivant montre comment gérer l’événement SessionEnding et autoriser l’utilisateur à l’annuler.

<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

Remarques

Par défaut, une application s’arrête lorsque la session Windows se termine, ce qui se produit lorsqu’un utilisateur se déconnecte ou s’arrête. Lorsque cela se produit, Windows demande à chaque application ouverte de s’arrêter. Toutefois, il est possible qu’une application ne soit pas prête à s’arrêter lorsque cela se produit. Par exemple, une application peut avoir des données dans un état incohérent ou au milieu d’une opération de longue durée. Dans ces situations, il peut être souhaitable d’empêcher la fin de la session et d’autoriser les utilisateurs à décider s’il faut ou non laisser la session se terminer.

Vous pouvez détecter quand une session se termine par la gestion de l’événement SessionEnding . Si une application doit empêcher la fin de la session, l’argument SessionEndingCancelEventArgs passé au gestionnaire d’événements expose le Cancel paramètre true défini sur (la valeur par défaut est false).

S’il SessionEnding n’est pas géré ou s’il n’est pas annulé, Shutdown est appelé et l’événement Exit est déclenché.

Pour obtenir plus d’informations sur la raison pour laquelle la session se termine, une application peut inspecter ReasonSessionEnding, qui est l’une des ReasonSessionEnding valeurs (ReasonSessionEnding.Logoff et ReasonSessionEnding.Shutdown).

SessionEnding n’est pas déclenché par les applications console.

SessionEnding est déclenché uniquement sur le thread qui crée l’objet Application .

SessionEnding n’est pas déclenché pour les applications de navigateur XAML (XBAPs).

S’applique à

Voir aussi