Application.SessionEnding Gebeurtenis

Definitie

Treedt op wanneer de gebruiker de Windows sessie beëindigt door het besturingssysteem uit te loggen of uit te schakelen.

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

Gebeurtenistype

Voorbeelden

In het volgende voorbeeld ziet u hoe u de SessionEnding gebeurtenis afhandelt en de gebruiker toestaat deze te annuleren.

<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

Opmerkingen

Standaard wordt een toepassing afgesloten wanneer de Windows sessie eindigt, wat gebeurt wanneer een gebruiker zich afmeldt of afsluit. Als dit gebeurt, vraagt Windows elke geopende toepassing om af te sluiten. Het is echter mogelijk dat een toepassing niet gereed is om af te sluiten wanneer dit gebeurt. Een toepassing kan bijvoorbeeld gegevens bevatten die een inconsistente status hebben of in het midden van een langlopende bewerking. In deze situaties kan het wenselijk zijn om te voorkomen dat de sessie wordt beëindigd en kan het wenselijker zijn om gebruikers de mogelijkheid te geven om te bepalen of de sessie al dan niet mag worden beëindigd.

U kunt detecteren wanneer een sessie eindigt door de SessionEnding gebeurtenis te verwerken. Als een toepassing moet voorkomen dat de sessie wordt beëindigd, wordt het SessionEndingCancelEventArgs argument dat wordt doorgegeven aan de gebeurtenis-handler de Cancel waarde die u hebt ingesteld true (de standaardwaarde is false).

Als SessionEnding deze niet is verwerkt of wordt verwerkt zonder te worden geannuleerd, Shutdown wordt deze aangeroepen en wordt de Exit gebeurtenis gegenereerd.

Voor meer informatie over waarom de sessie wordt beëindigd, kan een toepassing een van de ReasonSessionEnding waarden (ReasonSessionEndingenReasonSessionEnding.Logoff) inspecterenReasonSessionEnding.Shutdown.

SessionEnding wordt niet gegenereerd door consoletoepassingen.

SessionEnding wordt alleen gegenereerd op de thread waarmee het Application object wordt gemaakt.

SessionEnding wordt niet gegenereerd voor XAML-browsertoepassingen (XBAPs).

Van toepassing op

Zie ook