EvtEndSession
EvtEndSession
Beenden der Windows-Sitzung
Details
- Name: Typ Beschreibung
- aEvt:
eventEreignisinformation - Resultat:
logicWird nicht ausgewertet - Siehe: Liste , Objekte , Ereignisbefehle ,
WinShutdownBlock ()
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.
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.
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);
}