Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Anwendung beenden bei Windows Shutdown (WM_QueryEndSession)

  Alt 4. Apr 2014, 08:05
ShutdownBlockReasonCreate(HWND hWnd, LPCWSTR pwszReason);

http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
Das trifft hier ja nicht zu, denn das Speichern soll ja beim Beenden passieren.
Allerdings steht in dem Link die Vorgehensweise beim Shutdown erklärt.

Wenn die Anwendung prinzipiell mit dem Beenden der Session einverstanden ist, dann braucht diese auf MSDN-Library durchsuchenWM_QUERYENDSESSION gar nicht reagieren, sondern nur auf MSDN-Library durchsuchenWM_ENDSESSION und auch nur dann, wenn da wParam TRUE ist.

Dort hat die Anwendung dann idR unbegrenzt Zeit (siehe Link von hathor) alle Aktionen zu Beenden.
Allerdings wird ein Dialog eingeblendet und der Anwender kann immer das Herunterfahren erzwingen und dann wird die Anwendung auch hart über den Jordan geschickt. Dagegen kann man nichts machen, sondern nur im Protokoll vermerken.

Interessant ist auch der lParam Wert (Delphi-Referenz durchsuchenTWMEndSession.Unused ), denn darüber bekommt man raus unter welchen Bedingungen das passiert. ENDSESSION_CRITICAL ist dabei sehr interessant, denn dann hat man nur sehr wenig Zeit (siehe Link von hathor).

Wenn es extrem kritisch ist, dann sollte man diese sensiblen Daten periodisch immer speichern (Thread) - evtl. auch nicht an den original Stellen - um diesen Status beim nächsten Start wiederherstellen zu können.

Das ist ja auch gängige/vorgeschriebene Praxis bei den Anwendungen für Mobile Devices.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 4. Apr 2014 um 08:20 Uhr)
  Mit Zitat antworten Zitat