![]() |
Windows herunterfahren kann Prg. im Tray nicht beenden.
Hallo,
meine Anwendung soll nur im Tray sichtbar sein und daher kein Hauptfenster haben. Ich habe das wie ![]()
Delphi-Quellcode:
Jetzt habe ich das Problem, dass das Programm beim Herunterfahren von Windows manchmal nicht beendet wird. Das geht sogar soweit, dass Windows nicht herunterfährt.
Application.Initialize;
Application.Run; repeat Application.HandleMessage; until Application.Terminated; Wird vielleicht eine Message nicht korrekt verarbeitet oder was kann der Grund dafür sein? Danke im Voraus. |
Re: Windows herunterfahren kann Prg. im Tray nicht beenden.
|
Re: Windows herunterfahren kann Prg. im Tray nicht beenden.
Verarbeite mal diese Message WM_QueryEndSession
|
Re: Windows herunterfahren kann Prg. im Tray nicht beenden.
Hallo,
Diese Messages werden in TApplication.WndProc ja schon behandelt und zwar so:
Delphi-Quellcode:
Ich kann diese Messages ja auch nur in TApplication verarbeiten, weil ich kein Hauptformular habe (Application.Mainform = nil).
WM_ENDSESSION:
if TWMEndSession(Message).EndSession then begin CallTerminateProcs; Halt; end; WM_QUERYENDSESSION: Message.Result := 1; Kann ich sonst noch was probieren? |
Re: Windows herunterfahren kann Prg. im Tray nicht beenden.
Führt deine Anwendung Aufgaben durch, die längere Zeit (> 2s) in Anspruch nehmen ?
Dann sollte eine Prüfung auf Application.Terminated enthalten sein:
Delphi-Quellcode:
// das könnte sehr lange dauern:
for i:=1 to 99999999 do begin CalculatePrimTeiler(i); if (i mod 10) = 0 then begin Application.ProcessMessages; // Botschaften behandeln if Application.Terminated then Exit; // Programm ist eigentlich schon ein "Zombie"; schnell raus hier end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz