Laut
MSDN gibt es jetzt
PBT_APMSUSPEND. In meinen Tests auf Windows 7 hat das auch zuverlässig funktioniert
procedure WMPowerBroadcast(var Msg: TMessage); message WM_POWERBROADCAST;
Delphi-Quellcode:
//Beispiel-Routine
procedure TfrmMain.WMPowerBroadcast(var Msg: TMessage);
begin
case Msg.wParam of
PBT_APMSUSPEND:
begin
//System wird in einen Energiesparmodus versetzt
end;
PBT_APMRESUMESUSPEND:
begin
//System ist wieder aufgewacht
end;
PBT_APMRESUMEAUTOMATIC:
begin
//Nach dem Aufwachen wurde eine Benutzeraktivität festgestellt
end;
end;
end;
Allerdings hab ich nichts gefunden um festzustellen, ob das System in den Ruhezustand oder Standby wechselt. APMSUSPEND kommt bei beiden und gibt laut
MSDN keine Auskunft darüber.
Hat jemand eine Idee wie man das rausfinden kann?