Hi,
ich hab das auch, kommt nur nicht bei allen Systemen vor, aber ich habs so gelöst, jetzt ist mein PC mein Wecker
Delphi-Quellcode:
public
procedure WMPowerBroadcast(var MyMessage: TMessage); message WM_POWERBROADCAST;
.
.
.
procedure TMRMaster.WMPowerBroadcast(var MyMessage: TMessage);
begin
if MyMessage.Msg = WM_POWERBROADCAST then begin
if (MyMessage.WParam = PBT_APMQUERYSUSPEND) or (MyMessage.WParam = PBT_APMQUERYSTANDBY)
then begin
// windows wants to go into standby or hibernation mode
// Hier hin, was getan werden muss, bevor Windows in den Standby darf,
// z.B. Netzwerk- oder Datenbankverbindungen trennen, Timer abstellen, etc.
MyMessage.Result := 1; // allow standby/hibernation
// MyMessage.Result := BROADCAST_QUERY_DENY; // deny standby/hibernation
end else if (MyMessage.WParam = PBT_APMRESUMEAUTOMATIC) or (MyMessage.WParam = PBT_APMRESUMECRITICAL) or
(MyMessage.WParam = PBT_APMRESUMESUSPEND) or (MyMessage.WParam = PBT_APMRESUMESTANDBY)
then begin
// windows returns from standby or hibernation
// Hier z.B. Verbindungen wiederherstellen
// und Windows sagen das es benötigt wird und sich nicht automatisch ohne Usereingabe wieder ausschaltet
SetThreadExecutionState(ES_DISPLAY_REQUIRED or ES_SYSTEM_REQUIRED or ES_CONTINUOUS);
CancelWaitableTimer(htimer);
end;
end;
end;
ich denke das sollte alles ziemlich klar sein, hoff ich hab dir geholfen
hab selbst ewig danach gesucht
Gruß
Cylence