Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Standby im Service erfassen (https://www.delphipraxis.net/152952-standby-im-service-erfassen.html)

r29d43 14. Jul 2010 13:10

Standby im Service erfassen
 
Hallo,

gibt es in einem Service irgendeine Möglichkeit, den Anfang und das Ende eines Standby-Zustandes festzustellen?

Hintergrund: In so einem Service protokolliere ich bis dato schon das LogOn und LogOff der einzelnen User mit. (Das mache ich mit einer eigenen WinProc, die ich per AllocateHWnd erstelle und per WTSRegisterSessionNotification am System anmelde, zum Empfang der WTS-Messages). Nur jetzt möchte ich aber am liebsten mit diesem gleichen Service auch noch die Standby-An-u.-Aus-Zeiten miterfassen können.

Ich weiß, WMassages werden ansonsten nicht mehr an einen Service verschickt. Ein diesbezüglicher Versuch, da mal mittels dieser WTS-WindProc eine WM_POWERBROADCAST-Message zu empfangen, ging dann ja auch leider schief..:?


Also: Gibt es sonst noch irgendwelche theoretischen Möglichkeiten das in einem Service hinzukriegen?
(...halt was ohne dafür immer eine kleine extraApp zu diesem Zwecke mitlaufen lassen zu müssen) ?


Thx im Voraus!
rXdY

r29d43 14. Jul 2010 16:01

AW: Standby im Service erfassen
 
Hallo nochmal,

also: Diese WM_POWERBROADCAST-Messages kommen DOCH im Service an!!!!!

Mir war vorher nur ein kleiner Fehler beim Ergebnis-Output unterlaufen.

Nach der Korrektur sah es im Textfile, in dem der Service seine Aktivitäten auch nochmal zusätzlich protokolliert, so aus:

14:07:2010 15:49:42 es ist eine WM_PowerBroadcast-Message PBT_APMSUSPEND im Service angekommen! <-- beim Standby-Beginn
14:07:2010 15:50:17 es ist eine WM_PowerBroadcast-Message PBT_APMRESUMEAUTOMATIC im Service angekommen! <-- beim Standby-Ende
14:07:2010 15:50:17 es ist eine WM_PowerBroadcast-Message PBT_APMRESUMESUSPEND im Service angekommen! <-- beim Standby-Ende

MfG,
rXdY

PS. Das bezog sich auf Win7. Muss jetzt erstmal testen, ob sich das bei den anderen OSs (bis runter zum W2k) genauso verhält...

nytaiceman 11. Feb 2016 14:34

AW: Standby im Service erfassen
 
Hallo zusammen,

Der Fred ist zwar schon etwas älter aber ich habe ebenfalls ein Problem mit einem Dienst welcher nach einem Standby zwar weiterläuft aber der beim OnStart gestartete Thread erholt sich nicht mehr.

Es wäre gut wenn ich den Beginn von Standby erkennen könnte um den Thread zu suspenden und danach wieder mit Resume zu starten.
--> Alternativ könnte ich den Thread auch neu erstellen wenn Windows aus dem Standby erwacht.

Mein Problem ist nun, dass der Dienst nicht merkt wenn Windows wieder aus dem Standby erwacht.

Ich empfange keinerlei PowerMessages im Dienst.

Umgebung:
Delphi XE3
Windows 10 x64

Danke für einen kräftigen Schubser in die richtige Richtung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf