Hallo,
ich habe eine wirklich dumme Frage: ich habe eine kleine Testanwendung, die nichts weiter machen soll, als auf WM_POWERBROADCAST Messages zu hören und in ein Memo zu schreiben, was empfangen wurde.
Delphi-Quellcode:
procedure TForm1.WMPowerbroadcast(var Message: TMessage);
begin
memLog.Lines.Add('PowerBroadcast received');
case Message.WParam of
PBT_APMQUERYSUSPEND: memLog.Lines.Add('PBT_APMQUERYSUSPEND');
PBT_APMQUERYSTANDBY: memLog.Lines.Add('PBT_APMQUERYSTANDBY');
PBT_APMQUERYSUSPENDFAILED: memLog.Lines.Add('PBT_APMQUERYSUSPENDFAILED');
PBT_APMQUERYSTANDBYFAILED : memLog.Lines.Add('PBT_APMQUERYSTANDBYFAILED');
PBT_APMSUSPEND: memLog.Lines.Add('PBT_APMSUSPEND');
PBT_APMSTANDBY: memLog.Lines.Add('PBT_APMSTANDBY');
PBT_APMRESUMECRITICAL: memLog.Lines.Add('PBT_APMRESUMECRITICAL');
PBT_APMRESUMESUSPEND: memLog.Lines.Add('PBT_APMRESUMESUSPEND');
PBT_APMRESUMESTANDBY: memLog.Lines.Add('PBT_APMRESUMESTANDBY');
PBT_APMBATTERYLOW: memLog.Lines.Add('PBT_APMBATTERYLOW');
PBT_APMPOWERSTATUSCHANGE: memLog.Lines.Add('PBT_APMPOWERSTATUSCHANGE');
PBT_APMOEMEVENT: memLog.Lines.Add('PBT_APMOEMEVENT');
PBT_APMRESUMEAUTOMATIC: memLog.Lines.Add('PBT_APMRESUMEAUTOMATIC');
end;
end;
Wenn ich das unter W10 laufen lassen und dann den Rechner in den Energiesparmodus oder Ruhemodus versetze, dann wird rein gar nichts aufgezeichnet. Auch ein Zuklappen des Laptopdeckels scheint keine Message zu generieren. Einzig wenn man das Netzteil an/absteckt, dann wir eine Message mit PBT_APMPOWERSTATUSCHANGE empfangen.
Ich nehm an, ich mach irgendeinen Fehler, nur welchen? Ich steh grad völlig auf dem Schlauch.
Ach so: Delphi ist XE 10.2.3