Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Schon wieder Shutdown XP (https://www.delphipraxis.net/3464-schon-wieder-shutdown-xp.html)

CallmeMad 14. Mär 2003 12:32


Schon wieder Shutdown XP
 
Hallo Leute,

ich habe schon einige Artikel über Shutdown gelesen, habe aber folgendes Prob : Wenn man WindowsXP runterfährt, geht es nicht, da meine Anwendung noch läuft.
Wie genau muss denn mein Code aussehen, damit Windows ordnungsgemäß runterfährt ??

sakura 14. Mär 2003 12:56

Kennst Du den schon? http://www.delphipraxis.net/viewtopic.php?t=56

Wichtig ist auch der 2. Beitrag von Daniel.

...:cat:...

CallmeMad 14. Mär 2003 13:15

Ja,

ist doch aber nur, wenn ich Win XP aus meinem Progg heraus beenden will.
Das funzt auch...aber löst leider mein Problem nicht.
Oder doch... blick ich das nicht ??

sakura 14. Mär 2003 13:34

Oops, ich habe es falsch verstanden. Was für eine Anwendung hast Du denn geschrieben, weil Delphi diese Dinge eigentlich von selbst übernimmt und es normalerweise keine Probleme geben sollte.

...:cat:...

CallmeMad 14. Mär 2003 13:44

Meine Anwendung ist absolut harmlos, kein Registry Zugriff, FTP oder Internet, einfach simpel.Sie landet im Tray mit Hilfe der RXLIB - Trayicon - Geschichte. Liegt aber nicht daran, auch wenn Das Form sichtbar ist, weigert sich mein Progg, dass Windows beendet wird.

Habe gelesen, dass Windows uber Fenster Handle nachfragt ob runterfahren kann. Aber wie sage ich in meinem Progg : Jau, kann'ste !

Luckie 14. Mär 2003 13:51

WM_QUERYENDSESSION bekommst du von Windows geschickt, wenn es runterfahren will. Gibst du hier 0 oder FALSE zurück, dann bricht Windows das Runterfahren ab.

Aber ich habe schon von diversen TrayIcon-Komponenten gehört, dass sie das Beenden des Programms beim Runterfahren verhindern. Die aus der RXLib gehörte glaube ich dazu.

Du mußt es übrigens nicht deinem Programm sagen, sondern Windows!

CallmeMad 14. Mär 2003 14:14

Stimmt, aber wo gebe ich denn nun 0 oder false zurück ?
Nicht über canclose = true, denn dann fährt Windows runter, nur wenn die Anwendung beendet wird.

Luckie 14. Mär 2003 14:22

Das hat mit dem Flag CanClose von TForm.CloseQuery nichts zu tun. Das ist eine Message, die du abfangen mußt.
Und desweiteren mußt du natürlcih TRUE oder eins zurückgeben, Windows soll ja weiter runterfahren.

CallmeMad 14. Mär 2003 14:24

Schluchz....aber wie ????

Luckie 14. Mär 2003 14:34

So jetzt nimmst du erst mal das Taschentuch, schnäuzt dir die Nase, trocknest deine Tränen und dann kuckst du dir mal den Code vom lieben Onkel Luckie an:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
    procedure WMQUERYEBDSESSION(var msg: TMessage); message WM_QUERYENDSESSION;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMQUERYEBDSESSION(var msg: TMessage);
begin
  msg.Result := Integer(TRUE);
end;
Wenn du hier: msg.Result := Integer(TRUE); FALSE zurückgibst bricht Windows den Shutdown ab.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:31 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz