AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Ruhezustand mit WindowsDienst abfangen oder abfragen

Ruhezustand mit WindowsDienst abfangen oder abfragen

Ein Thema von JacK_Silent · begonnen am 18. Nov 2007 · letzter Beitrag vom 19. Nov 2007
Antwort Antwort
JacK_Silent

Registriert seit: 29. Mai 2006
3 Beiträge
 
#1

Ruhezustand mit WindowsDienst abfangen oder abfragen

  Alt 18. Nov 2007, 21:44
heyaaa =D

Ich hab einen Windows Dienst programmiert (mit der von Delphi gegeben Komponente "Service-Anwendung").
Allerdings lässt sich damit der Ruhezustand nicht abfragen!

Folgender Code funktioniert bei einer normalen Form1:

Delphi-Quellcode:
unit Unit1;

 
interface

 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

 
type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }  
  public
    { Public-Deklarationen }  
    procedure WMPowerBroadcast(var Msg: TMessage); message WM_POWERBROADCAST;
  end;

 
const
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;

 
var
  Form1: TForm1;

 
implementation

 
{$R *.dfm}  

 
procedure TForm1.WMPowerBroadcast(var Msg: TMessage);
begin
   showmessage('PowerBroadcast erhalten');
    if (Msg.WParam = PBT_APMSUSPEND) or
       (Msg.WParam = PBT_APMSTANDBY)
    then begin
      // windows want 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.
      showmessage('Standby/Ruhezustand');
      Msg.Result := 1; // allow standby/hibernation
      //Msg.Result := BROADCAST_QUERY_DENY; // deny standby/hibernation
 
    end else if (Msg.WParam = PBT_APMRESUMECRITICAL) or
                (Msg.WParam = PBT_APMRESUMESUSPEND) or
                (Msg.WParam = PBT_APMRESUMESTANDBY)
    then begin
      // windows returns from standby or hibernation
      // Hier z.B. Verbindungen wiederherstellen
      showmessage('Rückkehr aus Standby/Ruhezustand');
    end;
  end;
  //inherited WndProc(MyMessage);
 

 
end.
Allerdings nicht in der Service Komponente! Er bringt zwar beim kompilieren keinen Fehler. Allerdings bekommt er auch nicht mit, dass der PC in den Ruhezustand geht.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Ruhezustand mit WindowsDienst abfangen oder abfragen

  Alt 19. Nov 2007, 08:34
Windows-Nachrichten können nicht Desktop-Übergreifend verschickt werden und schon gar nicht WindowsStations übergreifend.

1. Welches OS?
2. Läuft der Service als "Desktop Interactive"?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
JacK_Silent

Registriert seit: 29. Mai 2006
3 Beiträge
 
#3

Re: Ruhezustand mit WindowsDienst abfangen oder abfragen

  Alt 19. Nov 2007, 10:04
Zitat von Luckie:
1. Welches OS?
WinXp Prof.

Zitat von Luckie:
2. Läuft der Service als "Desktop Interactive"?
ja


Habe deinen Artikel über die Window Stations übrigens schon gelesen (http://www.michael-puff.de/Artikel/2...w_Stations.php)
Ne Lösung für mein Problem hab ich allerdings nicht gefunden
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 06:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz