Einzelnen Beitrag anzeigen

mittelhirn

Registriert seit: 9. Feb 2007
6 Beiträge
 
#1

OnBefore Standby -> aktion ausführen mit Vista SP1

  Alt 17. Aug 2008, 19:25
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
  Mit Zitat antworten Zitat