AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Hochfahren nach Ruhezustand erkennen
Thema durchsuchen
Ansicht
Themen-Optionen

Hochfahren nach Ruhezustand erkennen

Ein Thema von Gydan · begonnen am 8. Nov 2005 · letzter Beitrag vom 2. Feb 2006
Antwort Antwort
Seite 1 von 2  1 2      
Gydan
(Gast)

n/a Beiträge
 
#1

Hochfahren nach Ruhezustand erkennen

  Alt 8. Nov 2005, 14:05
Gibt es eine Möglichkeit, dass ein Delphi-Programm erkennt, wenn Windows XP wieder aus dem Ruhezustand hochgefahren wurde?
  Mit Zitat antworten Zitat
Benutzerbild von gmarts
gmarts

Registriert seit: 4. Apr 2004
Ort: Templin
290 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: Hochfahren nach Ruhezustand erkennen

  Alt 8. Nov 2005, 14:47
Wurde das Delphiprogramm denn mit in den Ruhezustand gebracht? Wenn ja, dann weise doch einer Variablen einen bestimmten Wert zu, dieser müsste dann der gleiche bleiben. Wird der Rechner ganz neugestartet, wäre dieser Wert weg.
procedure TForm1.Button1Click(Sender: TObject);
begin
button1.Click;
end;
  Mit Zitat antworten Zitat
Gydan
(Gast)

n/a Beiträge
 
#3

Re: Hochfahren nach Ruhezustand erkennen

  Alt 8. Nov 2005, 14:51
Ja, das Programm läuft natürlich, wenn Windows in den Ruhezustand gefahren wird. Aber der Inhalt einer Variablen ist natürlich nach dem Ruhezustand noch da, das ist ja der Trick beim Ruhezustand, sonst würd danach doch kein Programm mehr funktionieren.

Ich dachte eher an so etwas wie eine Nachricht, die von Windows nach dem Ruhezustand an alle Programme gesendet wird, auf die man reagieren kann. So wie auf einen Button-Klick.
  Mit Zitat antworten Zitat
Benutzerbild von gmarts
gmarts

Registriert seit: 4. Apr 2004
Ort: Templin
290 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: Hochfahren nach Ruhezustand erkennen

  Alt 8. Nov 2005, 15:26
ähhh...mhhh...stimmt.....das Progamm merkt ja garnicht, wann es feststellen soll, daß die Variable gleich geblieben ist.
*sollte nicht so viel Kaffee trinken*
procedure TForm1.Button1Click(Sender: TObject);
begin
button1.Click;
end;
  Mit Zitat antworten Zitat
BKempf

Registriert seit: 1. Jun 2004
103 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Hochfahren nach Ruhezustand erkennen

  Alt 8. Nov 2005, 16:11
Zitat von gmarts:
ähhh...mhhh...stimmt.....das Progamm merkt ja garnicht, wann es feststellen soll, daß die Variable gleich geblieben ist.
Aber es könnte bemerken, wenn "plötzlich" mehrere Stunden vergangen sind.
Dann gibt es allerdings das Problem, daß eine Zeitumstellung erkannt werden muß.
The problem with troubleshooting is that sometimes the trouble shoots back.
  Mit Zitat antworten Zitat
Gydan
(Gast)

n/a Beiträge
 
#6

Re: Hochfahren nach Ruhezustand erkennen

  Alt 8. Nov 2005, 16:19
Ja, ich habs bis jetzt mit der Zeit gemacht, nur ich dachte, vielleicht gibt es eine "professionelere" Lösung.
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: Hochfahren nach Ruhezustand erkennen

  Alt 8. Nov 2005, 16:40
Schau die mal die Doku zu MSDN-Library durchsuchenWM_POWERBROADCAST an - müsstest du dir nur 'nen Message-Handler für schreiben.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Hochfahren nach Ruhezustand erkennen

  Alt 8. Nov 2005, 16:54
Zitat von Flocke:
Schau die mal die Doku zu MSDN-Library durchsuchenWM_POWERBROADCAST an - müsstest du dir nur 'nen Message-Handler für schreiben.
Und bei der Headerübersetzung der Jedis für die WIN32 Api sind in der JwaPbt.pas die Konstanten zu finden.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Gydan
(Gast)

n/a Beiträge
 
#9

Re: Hochfahren nach Ruhezustand erkennen

  Alt 8. Nov 2005, 17:46
Delphi-Quellcode:
procedure TForm1.WMPowerBroadcast(var Msg: TWMPower);
begin
  showmessage('1. Msg.PowerEvt: '+ inttostr( Msg.PowerEvt )+chr(13)+'Msg.Msg= '+inttostr(msg.msg) +chr(13)+'Msg.Unused: '+inttostr(msg.unused));
  if Msg.PowerEvt=PWR_SUSPENDRESUME then
  showmessage('Fortgesetzt');
end;
Das ist mein Versuch bis jetzt. PWR_SUSPENDRESUME hat den Wert 2, aber ich bekomme für Msg.PowerEvt nur die Werte 0 und 4 beim Ruhezustand einschalten und die Werte 18 und 7 beim Hochfahren aus dem Ruhezustand. Die Werte sind beim Suspend die gleichen. Die Prozedur wird also vor und nach dem Ruhezustand/Suspend aufgerufen, aber das mit dem Werten klappt nicht. Dabei wird die Prozedur wohl zwei mal aufgerufen, da ich zweimal Meldungen mit Werten erhalte. Kann mir da jemand helfen? Ich hatte gehofft, es wäre einfacher.

Kannst du mir das mit den Jedis erklären? Ich hab davon leider keine Ahnung.
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

Re: Hochfahren nach Ruhezustand erkennen

  Alt 8. Nov 2005, 17:58
TWMPower ist für WM_POWER, nicht für WM_POWERBROADCAST - nimm lieber einfach TMessage.

Laut PSDK kann wParam die folgenden Werte haben:
Zitat von PSDK:
Code:
[b]Event                     Meaning[/b]
PBT_APMBATTERYLOW         Battery power is low.
PBT_APMOEMEVENT           OEM-defined event occurred.
PBT_APMPOWERSTATUSCHANGE  Power status has changed.
PBT_APMQUERYSUSPEND       Request for permission to suspend.
PBT_APMQUERYSUSPENDFAILED Suspension request denied.
PBT_APMRESUMEAUTOMATIC    Operation resuming automatically after event.
PBT_APMRESUMECRITICAL     Operation resuming after critical suspension.
PBT_APMRESUMESUSPEND      Operation resuming after suspension.
PBT_APMSUSPEND            System is suspending operation.
Prüfe mal auf diese Werte.

Außerdem solltest du Msg.Result auf TRUE setzen, um das Suspend zu erlauben.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:29 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