AGB  ·  Datenschutz  ·  Impressum  







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

Form in Service rendern

Ein Thema von BambinatorXE · begonnen am 18. Jun 2019 · letzter Beitrag vom 10. Jul 2019
Antwort Antwort
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
711 Beiträge
 
Delphi 12 Athens
 
#1

AW: Form in Service rendern

  Alt 19. Jun 2019, 07:36
Hallo Leute,
ich habe eine ungewöhnliche Anforderung erhalten:
Ich brauche einen Windows-Dienst, der eine Form rendern soll und die als Bitmap (oder natürlich komprimiert) übers Netzwerk verschicken soll.
Kurz zu den Hintergründen: Gesamtarchitektur ist ein Windows Server 2012R2, auf dem ein Dienst läuft (den soll ich machen). Dieser Dienst erzeugt irgendwie eine schöne Darstellung eines Dashboards und streamt diese Darstellung per Netzwerk (Multicast) an mehrere Clients. Ob das nun Mini-PCs werden oder irgendwas à la DLNA, MJPEG, H.264 o.Ä. wird, ist erstmal nebensächlich, es geht erstmal darum, ob das überhaupt machbar ist. Die Framerate ist unkritisch (1 fps reicht).

Meine Idee ist jetzt, die Darstellung als unsichtbare TForm zu erstellen, um die VCL nutzen zu können (die Form gibts nämlich schon als normale VCL-Anwendung). Das ganze muss aber zwingend als Dienst laufen, da der Server ja normalerweise headless läuft und niemand angemeldet ist. Die Anwendung auf die ganzen Empfänger zu verteilen ist aus Sicherheitsgründen (Netztrennung der gemonitorten Daten) leider keine Option (so war's nämlich vorher). Und evtl. geht der Empfang später sogar ohne Mini-PCs mit der DLNA-Funktion der Fernseher.

Um endlich mal aufn Punkt zu kommen: wie kann ich in einem Service eine unsichtbare Form rendern und das Ergebnis als Bitmap erhalten?
Ich hab schon was gelesen, dass interaktive Services nicht mehr möglich sind, aber interaktiv brauch ichs ja nicht, ich wills ja nicht direkt dem User anzeigen... Das Dashboard komplett per Software in ein Bitmap quasi per Hand zu zeichnen wird wahrscheinlich viiiiel zu aufwendig - deswegen die Idee mit der VCL.
Mir fehlt leider komplett der Ansatzpunkt. Habt ihr eine Idee?

Vielen Dank schonmal für euer Hirnschmalz.

Stephan
Ein Service läuft normalerweise ohne einen Desktop und damit kann man da, soweit ich weis, auch keine Window-Handles erzeugen. Aber es gibt da eine API-Funktion CreateDesktop, die Du Dir mal ansehen solltest.

Wenn Du das Form ohne Fehler erzeugen kannst sollte es per PaintTo möglich sein, es auf einen Bitmap-Canvas zu zeichnen.
Peter Below
  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 05:00 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 by Thomas Breitkreuz