![]() |
Auf Herrunterfahren reagieren
Hallo,
kann man auf das herrunterfahren von windows reagieren? MfG - Ghost007 |
Re: Auf Herrunterfahren reagieren
|
Re: Auf Herrunterfahren reagieren
Zitat:
mfg phreax |
Re: Auf Herrunterfahren reagieren
hm, für meine problematik sind sie aber völlig ausreichend, danke ;)
>>Erledigt<< |
Re: Auf Herrunterfahren reagieren
Zitat:
![]() |
Re: Auf Herrunterfahren reagieren
Zitat:
danke phreax |
Re: Auf Herrunterfahren reagieren
hab jetzt was gefunden, kann das so funktionieren?
Delphi-Quellcode:
weil bei mir funktioniert das nicht ^^
procedure WMQueryEndSession(var Msg: TMessage); message WM_QUERYENDSESSION;
procedure WMEndSession(var Msg: TMessage); message WM_ENDSESSION; procedure TfrmMain.WMQueryEndSession; begin ShowMessage('1'); end; procedure TfrmMain.WMEndSession; begin ShowMessage('2'); end; |
Re: Auf Herrunterfahren reagieren
Also bei mir funktioniert folgendes hervorragend:
Delphi-Quellcode:
mfg phreax
//....
private //von der Form procedure WMEndSession(var Msg:TWMEndSession); message WM_ENDSESSION; //... procedure Form.WMEndSession(var Msg:TWMEndSession); begin showmessage('1'); end; |
Re: Auf Herrunterfahren reagieren
hi,
der code funktioniert wunderprächtig :D aber, frage, kann ich auch abfangen, ob der user rebooten,herunterfahren oder sich nur abmelden will? |
Re: Auf Herrunterfahren reagieren
Lies den Beitrag aufmerksam... dann wärst auf diesen Link gestoßen:
![]() Chris |
Re: Auf Herrunterfahren reagieren
imho kann ich da aber nicht zwischen rebooten und herunterfahren unterscheiden, oder irre ich?
|
Re: Auf Herrunterfahren reagieren
hmm.. tja Delphi hat die Parameter nicht wie im Link übersetzt, also weiss ich nicht welcher Parameter welcher ist, und ich habe keien Lust meinen PC jetzt neuzustarten ;)
versuche mal folgendes:
Delphi-Quellcode:
mfg phreax
private //von der Form
procedure WMQueryEndSession(var Msg:TWMQueryEndSession); message WM_QUERYENDSESSION; procedure TForm.WMQueryEndSession(var Msg:TWMQueryEndSession); begin showmessage('2'); if msg.Unused = 0 then ShowMessage('Herunterfahrn/reboot'); //vllt. mal etwas mit den paramtern rumspielen... end; ROTER KASTEN: Ich hab mal versucht den msdn Beitrag anzuwenden ;) |
Re: Auf Herrunterfahren reagieren
Zitat:
mfg phreax |
Re: Auf Herrunterfahren reagieren
Zitat:
|
Re: Auf Herrunterfahren reagieren
![]() Und jetzt ist gut für heute. :roll: Problem gelöst, wenn es keine weiteren Fragen dazu gibt, dann braucht auch hier kein Post mehr dazu entstehen. Danke. Chris |
Re: Auf Herrunterfahren reagieren
Ich darf noch darauf hinweisen, dass unter Vista ein Prozess nicht mehr das Herunterfahren blockieren oder verhindern kann.
Wenn der Prozess diese Nachricht bekommt, dann hat er ungefähr 3 Sekunden (wenn er nicht auf Nachrichten reagiert), um seine Daten zu sichern, bevor Vista ihn zwangsterminiert. Diese Maßnahme soll helfen, das Benutzergefühl, beim Herunterfahren (auch beim Suspend) zu verbessern. Dienste können spezielle Einstellungen vornehmen, die es Ihnen erlauben auch länger zu benötigen. |
Re: Auf Herrunterfahren reagieren
dann ist das ja in vista schon eingebaut, was mein problem ist. ich hab nämlich ein proggi geschreiben, wenn dieses jedoch läuft und man runterfährt, muss man 2mal den runterfahr dialog ausführen, weil der erste es nicht "schafft" das programm zu elemenieren. Ich hab das nun so gelöst, das ich die herunterfahr message wie in diesem topic beschreiben abfange, das programm schließe und einen herunterfahrbefehl rausschick. Aber das problem ist, das er auch nur herunterfehrt, wenn man sich nur abmeldet bzw. auch herunterfährt, wenn man rebooten will. deshalb such ich immer noch eine möglichkeit zu erkennen, was der user gedrückt hat(shutdown | reboot | logoff). Kann mir keiner helfen ? :(
MfG - Ghost007 |
Re: Auf Herrunterfahren reagieren
*PUSH*
|
Re: Auf Herrunterfahren reagieren
Ist das nicht schon zigmal beantwortet worden? Herunterfahren und Neustarten sind nicht zu unterscheiden, Abmelden hat einen eigenen lparam.
|
Re: Auf Herrunterfahren reagieren
hm, ok. danke.
aber wie hinder ich dann mein programm daran, den shutdown/reboot zu verzögern/verhindern? MfG - Ghost007 |
Re: Auf Herrunterfahren reagieren
*PUSH*
|
Re: Auf Herrunterfahren reagieren
Hi,
dass du den Shutdown/Reboot verhinderst, kann verschiedene Ursachen haben und wird wahrscheinlich nicht mehr mit der Ausgangsfrage zusammenhängen. Bitte eröffne dafür einen neuen Thread und biete doch ein paar mehr Infos. Die Wahrscheinlichkeit, dass du dann eine Antwort bekommst, ist dann größer. Chris |
Re: Auf Herrunterfahren reagieren
Zitat:
Wie beendest du dein Programm normal? Ich meine z. B. ob du eine eigene Procedure erstellt hast, die beim Beenden deines Programmes nicht verwendet wird. Welche Methoden verwendest du dafür? Ich vermute mal, das du nicht alle Objekte korrekt schließt. Gruß Matze |
Re: Auf Herrunterfahren reagieren
also,
das problem scheint in einer von mir benutzten kompo zu liegen, der destructor scheint nicht sauber gecodet zu sein. ohne die kompo beendet windows 1a. hab das jetzt so "gelöst" das ich zumindest zwischen logoff und reboot/shutdown unterscheiden kann, wenns jmd interessiert, hier der source.
Delphi-Quellcode:
MfG - AuspeX
.
. . private procedure WMEndSession(var Msg:TWMEndSession); message WM_ENDSESSION; . . . procedure TfrmMain.WMEndSession(var Msg:TWMEndSession); begin if msg.Unused = 0 then //d.h. es ist ein reboot/shutdown begin //code end else //d.h. es ist ein logoff begin //code end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:10 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 by Thomas Breitkreuz