Windows beenden erkennen

Hallo,

ich habe eine Software in Delphi geschrieben, die unten neben der Systemuhr liegt. Diese durchläuft eine Schleife, die jeweils mit Slepp(500) eine kleine Pause macht.

Wenn ich jetzt Windows verlasse, so wird angezeigt, dass meine Anwendung nicht beendet werden kann.

Das Programm hat kein Formular und kein Tapplication (um Speicher zu sparen).

Wie kann ich die Schleife selbstständig abbrechen und das Prog beenden, wenn Windows heruntergefahren wird ?

Vielen vielen Dank schon ein mal!!!

Bis dann, dann

S. Lorenz

Ich denke mal, du musst die WM_SHUTDOWN-Message hooken und diese als Abbruchsbedingung indirekt verwenden, in du zum beispiel ein Flag „Shutdown“ auf True setzt.

Hi Sebastian,
die Message, für die Du einen Messagehandler schreiben mußt, heißt WM_QUERYENDSESSION. Wenn Windows runtergefahren werden kann, dann mußt Du True zurückgeben, ansonsten False.

Gruß Thomas

P.S. Wenn Du Deine Schleife abbrechen willst, brauchst Du natürlich ein Flag, das im Messagehandler entsprechend gesetzt wird, wenn die WM_QUERYENDSESSION Message gekommen ist.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

tja und bei allen 3 varianten ist eigentlich das TApplication erforderlich damit die Messages richtig verarbeitet werden… du kommst eigentlich nicht drumrum. aber so schlimm ist das eigentlich auch nicht. sooo viel speicher frißt ein delphi-programm im gegensatz zu manchem VB/VC_programm nämlich nicht.