Zum Hauptinhalt springen

EvtEndSession

EvtEndSession

Beenden der Windows-Sitzung

Details

Die angegebene Prozedur wird ausgeführt, wenn die Windows-Sitzung beendet wird. Dies kann durch Abmelden, Herunterfahren oder Neu starten ausgelöst werden.

An dieser Stelle können nicht gespeicherte Daten gespeichert werden.

info

Mit diesem Ereignis kann das Abmelden nicht abgebrochen werden. Nach standardmäßig 5 Sekunden erhält der Benutzer eine Liste der Programme, die noch nicht beendet sind und kann hier dennoch alle Programme ohne weitere Rückfrage im Programm beenden. Je nach Betriebssystemversion werden Meldungsfenster erst angezeigt, wenn der Abmeldevorgang durch den Benutzer abgebrochen wird. Daher sollte auf Meldungsfenster nach Möglichkeit verzichtet werden.

Um das Abmelden des Benutzers zu verhindern, kann WinShutdownBlock () verwendet werden. Er sollte nur dann verwendet werden, wenn eine Operation in Verarbeitung ist, die abgeschlossen werden muss.

info

Das Ereignis wird nicht ausgelöst, wenn der Client mittels Task-Manager beendet wird.

Definition des Funktionskopfs:

sub EvtEndSession
(
aEvt : event; // Ereignis
)
: logic; // Wird nicht ausgewertet
{
return(true);
}

aEvt

Die Funktion hat einen Übergabeparameter vom Typ event. In aEvt wird unter anderem der Deskriptor des auslösenden Objekts, d. h. das Objekt, in dem die Ereignisfunktion eingetragen wurde, übergeben.

Resultat

Der Rückgabewert der Funktion wird nicht ausgewertet.

Beispiel:

sub EvtEndSession
(
aEvt : event; // Ereignis
) : logic // Wird nicht ausgewertet

{
// Sitzungsende in Sitzungseintrag vermerken
fiSesId # gSessionId;
tRes # RecRead(tblSesSessions, keySesId, _RecLock);
if (tRes = _rOk)
{
fbSesEnd->vmServerTime();
tRes # RecReplace(tblSesSessions, _RecUnlock);
}

// Datensatz bei Fehler entsperren
if (tRes != _rOk)
RecRead(tblSesSessions, keySesId, _RecUnlock);

return(true);
}