Autor Beitrag
thomasoop
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 29


D5 + D6 Enterprise
BeitragVerfasst: Mo 08.02.10 16:55 
Hallo zusammen,
ich habe ein kleines Tool geschrieben das die ganze Zeit laufen soll, wenn der PC an ist und beim minimieren/schließen in den Systray verschwindet.
Dazu habe ich das Schließen über das X im FormCloseQuery unterdrückt.
Leider hat das auch den Effekt, das wenn ich Windows runterfahren möchte, das Runterfahren abgebrochen wird (vermutlich weil CanClose auf False ist und Windows auf das schließen meines Programms wartet).

Frage: Wie kann ich es verhindern, das Windows beim runterfahren "hängen bleibt"?

Hier noch ein Teil meines Codes zur Erläuterung:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
{*******************************************************************************
*                                                                              *
* Programmende nur kontrolliert erlauben                                       *
*                                                                              *
*******************************************************************************}

procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if WindowState = wsMinimized Then  
    bpvClose := True; // funzt leider nicht

  If Not bpvClose Then
   Minimieren1Click(Sender);

  If bpvClose Then
    TaskBarRemoveIcon();
    
  CanClose := bpvClose;
end;


Viele Grüße
Thomas

Moderiert von user profile iconmatze: Code- durch Delphi-Tags ersetzt
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Mo 08.02.10 18:27 
Verschwindet nicht die Taskbar vorher? Dann könntest du ja checken ob die noch sichtbar ist

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mo 08.02.10 18:28 
man könnte doch auch WM_QueryEndSession abfangen und dementsprechend reagieren oder?

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Mo 08.02.10 18:50 
aber nur wenn man weiß dass es sowas gibt :mrgreen: *wieder was gelernt hat*

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
thomasoop Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 29


D5 + D6 Enterprise
BeitragVerfasst: Di 09.02.10 19:17 
user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
man könnte doch auch WM_QueryEndSession abfangen und dementsprechend reagieren oder?

lg elundril

Funktionierte super mit

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TfrmMain.WMQueryEndSession (var Msg : TWMQueryEndSession);
begin
  Msg.Result := 1;
  bpvClose := True;
end;


Moderiert von user profile iconNarses: Code- durch Delphi-Tags ersetzt