AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Auf Standby/Ruhezustand überprüfen
Thema durchsuchen
Ansicht
Themen-Optionen

Auf Standby/Ruhezustand überprüfen

Ein Thema von TurboMartin · begonnen am 20. Jul 2006 · letzter Beitrag vom 8. Jun 2009
 
Benutzerbild von H4ndy
H4ndy

Registriert seit: 28. Jun 2003
Ort: Chemnitz
515 Beiträge
 
Delphi XE3 Professional
 
#3

Re: Auf Standby/Ruhezustand überprüfen

  Alt 20. Jul 2006, 11:59
Du kannst nicht prüfen, ob gerade der Standby oder Ruhezustand an ist, da dein Programm in dieser Zeit "lahmgelegt" ist

Du kannst aber reagieren, wenn der PC in einen dieser Modi wechselt.
Dazu einfach folgende Funktion zum Formular hinzufügen:
Delphi-Quellcode:
type Form1...
public
procedure WndProc(var MyMessage: TMessage); override;
...
Und so dann aufbauen:
Delphi-Quellcode:
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.

  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
 end;
  end;
  inherited WndProc(MyMessage);
end;
Falls die Konstanten fehlen:
Delphi-Quellcode:
PBT_APMQUERYSUSPEND = $0000;
PBT_APMQUERYSTANDBY = $0001;

PBT_APMQUERYSUSPENDFAILED = $0002;
PBT_APMQUERYSTANDBYFAILED = $0003;

PBT_APMSUSPEND = $0004;
PBT_APMSTANDBY = $0005;

PBT_APMRESUMECRITICAL = $0006;
PBT_APMRESUMESUSPEND = $0007;
PBT_APMRESUMESTANDBY = $0008;

PBTF_APMRESUMEFROMFAILURE = $00000001;

PBT_APMBATTERYLOW = $0009;
PBT_APMPOWERSTATUSCHANGE = $000A;

PBT_APMOEMEVENT = $000B;
PBT_APMRESUMEAUTOMATIC = $0012;
Manuel
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz