![]() |
Herausfinden ob Neustart, Herunterfahren oder Ruhemodus
Hallo,
habe schon ![]() Könnt ihr mir Tipps geben? Danke im Voraus Nach 3 Minuten: Ah... ich sehe gerade: Zitat:
[edit=alcaeus]Beitraege zusammengefuehrt. Den Edit-Button solltest du kennen :roll: Mfg, alcaeus[/edit] |
Re: Herausfinden ob Neustart, Herunterfahren oder Ruhemodus
Warum sollte es eine Möglichkeit geben zwischen herunterfahren und Neustarten zu unterscheiden? In beiden Fällen wird der PC heruntergefahren. Beim Neustart kommt zusätzlich noch das Rebooten hinzu. Aber Runtergefahren wird in beidne Fällen komplett.
|
Re: Herausfinden ob Neustart, Herunterfahren oder Ruhemodus
Es hat schon einen Grund, warum ich das abfangen möchte. Ich habe ein Programm, das wird ausgeführt, wenn Windows (wie auch immer) beendet wird. (Dies hat auch seinen (vernünftigen) Grund) Wenn das Programm seine Arbeit getan hat, fährt es Windows auch brav herunter. Aber was ist, wenn der User Windows neu booten wollte? Dann muss er immer wieder den PC von Hand einschalten. - Gut, nicht weiter tragisch, stört mich nur...
|
Re: Herausfinden ob Neustart, Herunterfahren oder Ruhemodus
Zitat:
Gruß Hawkeye |
Re: Herausfinden ob Neustart, Herunterfahren oder Ruhemodus
Mein Programm läuft im Hintergrund ohne Aktion. Wenn es die Nachricht WM_ENDSESSION erhält, führt es seine Arbeit durch. Damit ist der Vorang abgebrochen - oder ist er dann nur "pausiert"? Wenn ja: Wie kann ich den Vorgang weiter druchführen lassen?
|
Re: Herausfinden ob Neustart, Herunterfahren oder Ruhemodus
Hallo DJ-SPM,
ich habe hier noch zwei Links für dich, die einen Fehler in einigen Delphi-Versionen (u.a. Delphi 7) beschreiben. ![]() ![]() Der erste Link ist schon etwas älter (Delphi 1?), beschreibt aber eine mögliche Lösung des Problems. Du solltest versuchen, die Nachricht WM_ENDSESSION abzufangen und dort deine Applikation mit einer Halt-Anweisung zu beenden. Dadurch wird die Kontrolle an Windows zurückgegeben und somit der Shutdown-Vorgang nicht unterbrochen. Ob dazu ein Hook nötig ist, kann ich dir nicht sagen. Ich würde es zunächst in der Behandlungsroutine für WM_ENDSESSION versuchen. Hoffentlich hilft es... :roll: Gruß Hawkeye |
Re: Herausfinden ob Neustart, Herunterfahren oder Ruhemodus
@DJ-SPM: Hast du schon im MSDN nach WM_ENDSESSION geschaut. Über das Result der Message sollte eigentlich geregelt werden ob der Vorgang abgebrochen wird oder nicht.
|
Re: Herausfinden ob Neustart, Herunterfahren oder Ruhemodus
Zitat:
Delphi-Quellcode:
TForm1 = class(TForm)
... private ... procedure EndSessionHandler(var AMessage : TMessage); message wm_EndSession; ... public ... end; . . . procedure TForm1.EndSessionHandler(var AMessage : TMessage); begin // Ausführen der für diesem Fall noch anstehenden Arbeiten inherited; end; |
Re: Herausfinden ob Neustart, Herunterfahren oder Ruhemodus
Zitat:
|
Re: Herausfinden ob Neustart, Herunterfahren oder Ruhemodus
ich hab nach WM_ENDSESSION im MSDN gesucht. Dort steht wenn ich mich recht entsinne das 0 zurück gegeben werden soll wenn eine Anwendung die Message verarbeitet. Möchte man also den Effekt erzielen das die Message nicht verarbeitet wird sollte man nicht 0 zurück geben.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 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