AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TService: OnShutdown feuert nicht

Ein Thema von bcvs · begonnen am 28. Okt 2020 · letzter Beitrag vom 30. Okt 2020
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#1

AW: TService: OnShutdown feuert nicht

  Alt 29. Okt 2020, 18:01
Bekommt der Dienst kein WM_ENDSESSION?
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
730 Beiträge
 
Delphi 12 Athens
 
#2

AW: TService: OnShutdown feuert nicht

  Alt 30. Okt 2020, 08:31
Nein, hat ja kein Fenster.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#3

AW: TService: OnShutdown feuert nicht

  Alt 30. Okt 2020, 09:50
Nein, hat ja kein Fenster.
Braucht er auch nicht, naja, nicht direkt,
aber nein, dein Dienst hat ein "Fenster", siehe Application.

TService nutzt intern die VCL, für die Messagebehandlung.
Forms.Application.Handle (HWND) ist das Basis-MessageWindow der VCL.



SvcMgr.Application (TServiceApplication) die hauptklasse des Delphi-Services,
aber intern wird auf Forms.Application (TApplication) zugrgriffen ... das kannst du auch, indem du die Unit Forms einbindest.

Bzw. du kannst auch Delphi-Referenz durchsuchenTApplicationEvents verwenden. Ist eh besser als direkt auf die Events von Forms.Application zuzugreifen.


Message-Only Window: Das sind unsichtbare "Fenster" ohne Parent ... SystemMessages werden von Windows an alle TopLevel-Windows gesendet.

Du kannst auch selbst ein Message-Only Window erstellen. (PS: jeder VCL-TTimer hat intern auch sein eigenes Fenster)
https://docs.microsoft.com/en-us/win...e-only-windows
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#4

AW: TService: OnShutdown feuert nicht

  Alt 30. Okt 2020, 09:59
Folgender Weg ist "FastBoot" kompatibel und ermöglichte eine ServiceOnly Lösung ohne App im Infotray.

https://docs.microsoft.com/en-us/win...s-in-a-service
..."Receiving Events in a Service
A service that is a console application can register a console control handler to receive notification when a user logs off. However, there is no console event sent when an interactive user logs on. For information on receiving notification when a user logs on, see Creating a Winlogon Notification Package."...

So wäre das "Shutdown-Signal" Problem sauber gelöst.
Dort steht im weiteren auch der Weg, wie ein Service ein UserLogin mitbekommen kann. (z.B. wenn ohne zusätzliche User-AutostartApp ein Service erst/nur aktiv werden soll, wenn ein User eingelogt ist)
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
730 Beiträge
 
Delphi 12 Athens
 
#5

AW: TService: OnShutdown feuert nicht

  Alt 30. Okt 2020, 11:46
Danke für eure Tips.

Bzw. du kannst auch Delphi-Referenz durchsuchenTApplicationEvents verwenden. Ist eh besser als direkt auf die Events von Forms.Application zuzugreifen.
Habe ich jetzt probiert. Da kommt aber immer noch kein WM_ENDSESSION an. Weder beim Neustart noch beim Herunterfahren.

Folgender Weg ist "FastBoot" kompatibel und ermöglichte eine ServiceOnly Lösung ohne App im Infotray.

https://docs.microsoft.com/en-us/win...s-in-a-service

Das ist mir momentan zu kompliziert. Mit der App im Infotray kann ich mittlerweile ganz gut leben.
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:26 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