Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Programm soll sich nicht beenden lassen (https://www.delphipraxis.net/84019-programm-soll-sich-nicht-beenden-lassen.html)

Luckie 10. Jan 2007 09:32

Re: Programm soll sich nicht beenden lassen
 
Zitat:

Zitat von Harry M.
Fange den Vorgang des Herunterfahres ab mit WMQueryEndSession.

Und was nützt ihm das? Windows beendet alle Programme die vor seinem die Nachricht bekommen und dann steht er da mit einem halben System und muss neu starten.

Nils_13 10. Jan 2007 09:35

Re: Programm soll sich nicht beenden lassen
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von Harry M.
Fange den Vorgang des Herunterfahres ab mit WMQueryEndSession.

Und was nützt ihm das? Windows beendet alle Programme die vor seinem die Nachricht bekommen und dann steht er da mit einem halben System und muss neu starten.

Ich weiß ja nicht, wie dein System aussieht, aber bei mir werden höchstens diese Programme abgeschossen: Trillian, Explorer, FF, Delphi, Player. Neustarten ? Wozu ? Es ist bloß enorm nervig, wenn der PC erst neustartet, alles neu laden muss...

Zitat:

Zitat von sirius
Zitat:

Zitat von Nils_13
Hm, da gibt es bei mir nur "Beim Drücken des Netzschalters am Computer : Computer Herunterfahren". Der Rest trifft nicht auf die Powertaste zu. Der Powerknopf am PC (NICHT an der TASTATUR) darf niemals deaktiviert werden, weil dies eine gute Methode ist, bei einem Absturz den PC ordentlich herunterzufahren (wenn mir manchmal z.B. nach einem Mod-test GTA-SA angestürzt ist, war dies die perfekte Lösung).

Und was ist mit dem Tastaturteiber?

Falls du Systemsteurung --> Tastatur meinst : Nichts.

Luckie 10. Jan 2007 09:41

Re: Programm soll sich nicht beenden lassen
 
Zitat:

Zitat von Nils_13
Zitat:

Zitat von Luckie
Zitat:

Zitat von Harry M.
Fange den Vorgang des Herunterfahres ab mit WMQueryEndSession.

Und was nützt ihm das? Windows beendet alle Programme die vor seinem die Nachricht bekommen und dann steht er da mit einem halben System und muss neu starten.

Ich weiß ja nicht, wie dein System aussieht, aber bei mir werden höchstens diese Programme abgeschossen: Trillian, Explorer, FF, Delphi, Player. Neustarten ? Wozu ?

Es gibt auch noch unsichtbare Fenster deren zugehörige Prozesse beendet werden. Und da wäre ich mir eben nicht so sicher, obn da nicht was wichtiges dabei ist.

Nils_13 10. Jan 2007 09:43

Re: Programm soll sich nicht beenden lassen
 
Ich konnte meinen PC insgesamt ca. 3x vor dem Runterfahren mit Trillian stoppen, dann konnte ich wieder alles starten und alles war in Ordnung. Damit habe ich zum Glück ausnahmsweise noch keine Probleme.

Harry M. 10. Jan 2007 10:05

Re: Programm soll sich nicht beenden lassen
 
Luckie, heißt ja nicht das sein "Abfang Programm" als letztes gekillt wird.
Ich will meinen rein gefühlsmässig, dass Windows wenn es runterfährt die Programme in einer Art "Rückwärts-Zählschleife" beendet.

Eigendlich sollte es auch delphi merken wenn Windows runterfährt und der Debugger sagt das er läuft und ob er beendet und dann gespeichert werden soll. (So jedenfalls bei mir).

sirius 10. Jan 2007 10:26

Re: Programm soll sich nicht beenden lassen
 
Zitat:

Zitat von Harry M.
Luckie, heißt ja nicht das sein "Abfang Programm" als letztes gekillt wird.
Ich will meinen rein gefühlsmässig, dass Windows wenn es runterfährt die Programme in einer Art "Rückwärts-Zählschleife" beendet.

Eigendlich sollte es auch delphi merken wenn Windows runterfährt und der Debugger sagt das er läuft und ob er beendet und dann gespeichert werden soll. (So jedenfalls bei mir).

Für dein Gefühl hat Windows anscheinend eine Liste:
Zitat:

Zitat von msdn
SetProcessShutdownParameters

Sets shutdown parameters for the currently calling process. This function sets a shutdown order for a process relative to the other processes in the system.


Warum dann nicht WM_QueryEndSession in einem globalen Hook "abfangen". Kann man zumindest mal probieren.

Nils_13 10. Jan 2007 10:38

Re: Programm soll sich nicht beenden lassen
 
Und was heißt das wieder konkret ? :( Ich spüre schon, das ist nicht so leicht.

kalmi01 10. Jan 2007 10:48

Re: Programm soll sich nicht beenden lassen
 
Zitat:

Warum dann nicht WM_QueryEndSession in einem globalen Hook "abfangen".
Warum so umständlich ?
Ein Prog, welches Windows am beenden hindert reicht doch schon.
Im Idealfall also das Prog, welches auch nicht beendet werden soll.

Delphi-Quellcode:
procedure WMQueryEndSession(var Msg: TMessage); message WM_QUERYENDSESSION;
......

procedure TForm1.WMQueryEndSession;
  begin
    Msg.Result := 0;  //Windows muss das Runterfahren stoppen

    CleanALL;

    Down := true;
    Msg.Result := 1;  //Windows darf Runterfahren
  end;
aus diesem Thread
Ich hoffe es hilft.

sirius 10. Jan 2007 10:55

Re: Programm soll sich nicht beenden lassen
 
Zitat:

Zitat von kalmi01
Zitat:

Warum dann nicht WM_QueryEndSession in einem globalen Hook "abfangen".
Warum so umständlich ?
Ein Prog, welches Windows am beenden hindert reicht doch schon.
Im Idealfall also das Prog, welches auch nicht beendet werden soll.

Weil ich in der Annahme bin, dass er nicht nur verhindern will, dass sein selbst programmiertes Programm beendet wird. Er möchte es bei allen Programmen/Prozessen.

Nils_13 10. Jan 2007 11:47

Re: Programm soll sich nicht beenden lassen
 
@kalmi01: Werde es probieren, danke.
@sirius: Das ist der Idealfall, aber schwer für mich zu programmieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:13 Uhr.
Seite 2 von 3     12 3      

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