AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi vorhandene VCL Anwendung als Windows Dienst
Thema durchsuchen
Ansicht
Themen-Optionen

vorhandene VCL Anwendung als Windows Dienst

Ein Thema von AJ_Oldendorf · begonnen am 14. Mär 2025 · letzter Beitrag vom 17. Mär 2025
Antwort Antwort
AJ_Oldendorf

Registriert seit: 12. Jun 2009
417 Beiträge
 
Delphi 12 Athens
 
#1

vorhandene VCL Anwendung als Windows Dienst

  Alt 14. Mär 2025, 06:35
Guten Morgen zusammen,
da die Suche aktuell hier nicht geht, frage ich einfach mal nach.
Ein Kunde von uns fragt an, ob wir unsere vorhandene VCL Anwendung (sehr umfangreich, viele Fenster, Multi-Threading-Anwendung, Verwendung von Indy für Netzwerkkommunikation etc) als Windows Dienst laufen lassen können, damit kein User am Betriebssystem angemeldet sein muss.
Mit Windows Diensten haben wir uns noch nie beschäftigt.
Daher ein paar Fragen dazu:
1) Kann man eine komplexe VCL-Anwendung als Windows Dienst laufen lassen?
2) Kann ein Dienst eine GUI-Oberfläche haben oder wie kann man entsprechende Einstellungen/Konfigurationen in der Software vornehmen?
3) Gibt es andere Mechanismen, um den Kunden seinen Dienst zu liefern und trotzdem die VCL Anwendung laufen zu haben?

Wenn ihr da Anregungen und Tipps habt, bin ich gespannt diese zu lesen
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.905 Beiträge
 
Delphi 12 Athens
 
#2

AW: vorhandene VCL Anwendung als Windows Dienst

  Alt 14. Mär 2025, 07:13
Grundsätzlich kannst du eine VCL-Anwendung als Dienst laufen lassen. Allerdings hast du keine Möglichkeit (mehr, früher gab es interaktive Dienste), deren Oberfläche zu sehen. Deshalb macht das wenig Sinn, ohne diese zu modifizieren.

Zur Steuerung eines Dienstes bietet sich eine Trayanwendung an, die im einfachsten Fall nur aus dem Icon und einem Konfigurationsfenster besteht. Diese kann dann mit dem Dienst kommunizieren. Oder der Dienst stellt eine Webanwendung bereit, die aus Sicherheitsgründen nur lokal abrufbar sein sollte. Ich persönlich habe die Dienst-Anwendung so gestaltet, dass je nach Aufruf (Dienstkontext oder Desktop) entweder ein Dienst gestartet wird oder ein VCL-Fenster angezeigt wurde. So konnte ich dort dann auch direkt Knöpfe zur Installation und Deinstallation des Dienstes anbieten.

Ein erster Umbau der Anwendung muss gar nicht so aufwendig sein, wenn die Oberflächenlogik einigermaßen von der Programmlogik getrennt ist. Wenn sich die Funktionalität natürlich um das Hauptfenster herum dreht, sprich dort der Dreh- und Angelpunkt ist, ist der Aufwand höher.

Ich würde in jedem Fall dazu raten, die Anwendung so umzubauen, dass sie ohne ein sichtbares Fenster ihre Arbeit verrichten kann. Sie kann durchaus Fenster unter der Haube nutzen, solange sie nicht sichtbar sein müssen. Das ist zwar nicht ideal, aber im ersten Schritt nicht schlimm.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.220 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: vorhandene VCL Anwendung als Windows Dienst

  Alt 14. Mär 2025, 09:00
Zitat:
viele Fenster
D.h. eine Anwendung die normale Anwender interaktiv bedienen?
Oder ist das nur Konfig und der normale Ablauf ist das "Nach knopfdruck" alles automatisiert ablauft und man nur "hin und wieder draufschaut, ob alles passt"

Wenn 1 -> Lass es mit dienst und überlege ob die Anwendung nicht irgendwann mal sinnvoll as WebAnwendung im Browser anbieten willst
Wenn 2 -> 2 Exe erstellen. Erste zur Konfig und 2te als Dienst ohne GUI.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
AJ_Oldendorf

Registriert seit: 12. Jun 2009
417 Beiträge
 
Delphi 12 Athens
 
#4

AW: vorhandene VCL Anwendung als Windows Dienst

  Alt 14. Mär 2025, 11:01
Also es handelt sich um eine Anwendung, die vollständig über eine VCL bedienbar ist (eine Maschine lässt sich damit steuern). An dieser Anwendung sind über Indy Sockets Stationen angeschlossen, die mit dieser Anwendung kommunizieren. Die ganze GUI Eingabe lässt sich auch an den externen Stationen durchführen, Ausführendes Organ ist aber die Haupt VCL Anwendung (die jetzt als Dienst laufen soll).

Also kurz zusammengefasst, ich kann eine VCL Anwendung als Dienst laufen lassen, habe aber KEINE Oberfläche mehr. Richtig?
Das heißt, wenn meine externen Stationen alle ausgeschaltet wären oder das Netzwerk nicht geht, kann ich die Haupt-VCL Anwendung nicht mehr bedienen?

Noch als Hintergrund, die Anwendung ist als multithreading ausgelegt und versucht so echtzeitnah zu arbeiten wie möglich (ich weiß, Windows und Echtzeitfähigkeit...-> darum geht es hier aber nicht)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.220 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: vorhandene VCL Anwendung als Windows Dienst

  Alt 14. Mär 2025, 12:36
Zitat:
... Die ganze GUI Eingabe lässt sich auch an den externen Stationen durchführen ...
... Das heißt, wenn meine externen Stationen alle ausgeschaltet wären oder das Netzwerk nicht geht, kann ich die Haupt-VCL Anwendung nicht mehr bedienen?
Kannst du nicht eine "pseudoexterne Station" lokal laufen lassen, die mit dem eingeloggten User gestartet werden kann?
Dann hättest du ja die Eingebemöglichkeit?
Oder ist diese "externe Station" kein normales Windows-programm?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
981 Beiträge
 
Delphi 6 Professional
 
#6

AW: vorhandene VCL Anwendung als Windows Dienst

  Alt 14. Mär 2025, 12:37
Hmm...

Einfache Fragen:
Muss beim Starten der Anwendung irgendwas durch einen User gemacht werden (Anmelden, einen 'Start' Knopf klicken)?
Zeigt die Hauptanwendung (Dienst) im Lauf Meldungsfenster oder benötigt direkte Eingaben von einem User?

Wenn Du diese Fragen mit Ja beantworten musst, dann ist die Anwendung nicht als Dienst verwendbar!

Es kann nur eine (normale) Applikation sinnvoll als Dienst installiert werden, wenn diese ohne Interaktion startet und dann ohne Meldungsfenster läuft.

Hierbei ist es unerheblich, was diese Anwendung dann macht
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.114 Beiträge
 
Delphi 2009 Professional
 
#7

AW: vorhandene VCL Anwendung als Windows Dienst

  Alt 14. Mär 2025, 12:41
Warum Dienst und keine Aufgabe?
Janni
2005 PE, 2009 PA, XE2 PA
  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 17:30 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