Einzelnen Beitrag anzeigen

OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#12

Re: Wie das Blockieren beim Herunterfahren verhindern/umgehe

  Alt 23. Nov 2009, 13:07
Als Ergänzung: Grundsätzlich ist die Vorgehensweise, dass du im ENDSESSION (nicht im QUERYENDSESSION) deine Verarbeitung zum Herunterfahren durchführst. QUERYENDSESSION dient eigentlich ausschließlich dazu, das Herunterfahren abzubrechen.

Wichtig ist, dass du einigermaßen schnell bist. Firefox hat beispielsweise früher grundsätzlich beim Herunterfahren nichts gemacht (Session ist in den AutoRecovery-Daten gespeichert), so dass die Daten beim nächsten Start wieder da waren. Das geht schnell, normales Beenden von Firefox ist sehr langsam (wenn viele Tabs offen sind). Wenn du langsam bist, kommt ab Vista relativ schnell ein abgedunkelter Bildschirm, auf dem deutlich zu sehen ist, dass DU den Start verzögerst. Der Benutzer kann dann eiskalt auf "Sofort herunterfahren" klicken und du hast keine Chance mehr, auf irgendwas zu reagieren. Aber deine ENDSESSION-Behandlung läuft immer noch weiter, auch wenn der Bildschirm abgedunkelt ist. Ab 7 hast du sogar die Möglichkeit, einen Text anzugeben, der vom abgedunkelten Bildschirm für deine Anwendung angezeigt wird (Beispiel: VMWare Workstation 7 zeigt an, dass es gerade eine VM runterfährt), so dass der Benutzer dich vielleicht noch nicht abwürgt. Sofern du immer noch schneller fertig bist als die letzten Programme, die geschlossen werden, funktioniert das eigentlich auch ganz gut. Insofern ist, meiner Meinung nach, die korrekte Vorgehensweise, einfach im ENDSESSION dein Ding durchzuziehen und zu hoffen, dass es reicht. Wenn es nicht reicht, hat der Benutzer ab Vista explizit dein Programm abgeschossen. Das kann er natürlich sowieso, auch ohne Herunterfahren.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat