Entwickler-Ecke
Windows API - Windows beenden abfangen
Ich Bins - Di 17.02.04 23:40
Titel: Windows beenden abfangen
Hi!
Wie kann ich bei Windows XP das Ereignis abfangen, wenn ich auf Start beenden und dann auf herunterfahren bzw. neustarten klicke?
Ich hatte mir vorgestellt das beim Klicken auf Herunterfahren / Neustarten eine Abfrage (MessageDlg oder so) kommt bei der ich dann bestätigen kann ob Windows heruntergefahren werden soll oder nicht!
Vielen Dank schon mal im Vorraus für alle Tips!
Moderiert von
Tino: Topic verschoben.
Popov - Mi 18.02.04 01:06
In der Regel reicht schon bei deinem Programm in
ONCLOSEQUERY CanClose auf False zu setzen um Windows beim runterfahren zu hindern. Diese Möglichkeit ist dazu gedacht, daß, falls ein Programm seine Daten nicht abgespeichert hat, nicht einfach ungefragt das Programm beendet werden kann. Also beendet Windows vor dem Runterfahren zuerst alle Programme. Falls sich ein Programm weigert, dann wird Windows nicht beendet.
Ob das aber auch für XP gilt weiß ich nicht.
Delete - Mi 18.02.04 01:20
Etwas unelegant und mit dem Parameter EWX_FORCE hilft dir das auch nichts mehr.
Sicherer ist: Windows fragt vorher selber nach, ob die Session beendet werden darf. Es schickt dazu an alle Toplevel-Fenster ein
WM_QUERYENDSESSION, sollte auch nur ein Fenster hier kein grünes Licht geben, wird die Session nicht beendet. Geben alle Fenster hier ihr "Go", kommt von Windows noch mal ein
WM_ENDSESSION, hier kann eine Anwendung noch was machen, aber das Beenden nicht mehr unterbrechen.
Ich Bins - Mi 18.02.04 21:45
Danke, hat so weit schon mal ganz gut geklappt!
Die einzige Frage die sich mir noch stellt ist folgende:
Wie kann ich Windows jetzt dazu bringen, dass er zuerst mein Programm fragt und nicht vorher schon alle anderen Programme beendet, sonst bringt mir das nicht allzuviel, wenn alles zu ist, außer Windows!
Delete - Do 19.02.04 02:23
Gar nicht. Die Reihenfolge ist wohl willkürlich. Geht mir mit ICQ auch so. Wenn ich noch einen Message-Request habe und ich fahre Windows runter, dann meldet sich ICQ noch mal deswegen und dann kann es passieren, dass der Virenscanner schon beendet ist und das Icon aus der TNA verschwindet, wenn ich auf ICQ reagiere.
Timosch - Di 01.06.04 16:01
Probiers mal mit "shutdown -a" (über ShellExecute ausführen)
Delete - Di 01.06.04 16:39
Ich glaube nicht, dass er nach gut 4 Monaten nach eine Chance hat, seinen Rechner vom Februar-Herunterfahren abzuhalten. ;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!