Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Windows beendet Programm nicht

  Alt 6. Aug 2005, 16:05
Zitat von turboPASCAL:
Weil CanClose := false; gesetzt ist auch bei der WM_QueryEndSession Message ?
Ich denke eigentlich, dass die WM_QueryEndSession-Message eintritt, bevor das OnCloseQuery-Ereignis aufgerufen wird. Ich stelle bei der Message ja die boolschen Variablen auf false. Wenn danach dann das OnCloseQuery kommt, steht CanClose ja auf true.

Zitat von Flocke:
Schießt du dir bei <HIER> nicht selbst in den Hintern?
Tatsache, da hatte ich einen Fehler drin, danke, nur lag's nicht an dem.

Zitat von Flocke:
Reagiere nicht auf WM_QUERYENDSESSION sondern auf WM_ENDSESSION mit wParam<>0 -> Application.MainForm.Close oder Application.Terminate
Wieso das?
Dann kann ich ja nicht mehr entsprechend reagieren.

Zitat von Flocke:
Wenn das nichts hilft würde ich mir in WndProc einen Logger packen, der alle Fenstermeldungen mitschreibt. Dann weißt du mal, was so ein Windows Shutdown überhaupt an Meldungen verursacht.
Ich schau mal, wie das geht, vielleicht komme ich dann zu einer Lösung.

Zitat von Flocke:
Was klappt denn nicht, kommt die Rückfragebox?
Nein, es kommt gar nichts. Das Programm läuft weiter, als ob sein Chef (Windows) nichts gesagt hätte.

Ich habe auch testweise ShowMessage in der WMQUERYENDSESSION Prozedur und im OnCloseQuery aufgerufen, doch sehe ich nie einen Dialog. Evtl. tritt das Ereignis gar nicht erst ein.
  Mit Zitat antworten Zitat