hi all,
Delphi-Quellcode:
type
TForm1 = class(TForm)
procedure WndProc(var MyMessage: TMessage); override;
.....
procedure TForm1.WndProc(var MyMessage: TMessage);
begin
if MyMessage.Msg = WM_POWERBROADCAST then begin
// windows powermanagement message
if (MyMessage.WParam = PBT_APMQUERYSUSPEND) or
(MyMessage.WParam = PBT_APMQUERYSTANDBY)
then begin
// Hier hin, was getan werden muss, bevor Windows in den Standby darf,
// z.B. Netzwerk- oder Datenbankverbindungen trennen, Timer abstellen, etc.
ShowMessage('Bin mal weg');
MyMessage.Result := 1; // allow standby/hibernation
//MyMessage.Result := BROADCAST_QUERY_DENY; // deny standby/hibernation
end else if (MyMessage.WParam = PBT_APMRESUMECRITICAL) or
(MyMessage.WParam = PBT_APMRESUMESUSPEND) or
(MyMessage.WParam = PBT_APMRESUMESTANDBY)
then begin
// Hier z.B. Verbindungen wiederherstellen
ShowMessage('Wieder da ;)');
end;
end;
inherited WndProc(MyMessage);
end;
Dieser Code funktioniert meines Wissens nicht mehr auf aktuellem Vista SP1 ...
Ich möchte wenn ein User in Standby geht vorher aktionen durchführen also z.b. StandbyEvent -> CloseProgramm -> ExecuteStandby.
Das funktioniert so nicht.
Nur der 'Nach WakeUp' Code funktioniert ?
//add:Zudem würde ich gerne das Standby verhindern unter Vista
Kann mir da jemand auf sie Sprünge helfen was sich in Vista geändert hat und wie ich das erreichen kann ?
Thanx