![]() |
NT Dienst wie normale Anwendung mit Formular (zb. VNC,Kerio
Liste der Anhänge anzeigen (Anzahl: 1)
hallo,
habe ein Problem, habe einen NT-Dienst geschrieben und will daraus nach bestimmter Zeit ein Formular als Warnmeldung öffnen, der Dienst und alles Funktioniert aber weiter nicht. wenn ich nun im Projekt Forms mit eintrage kann ich den Dienst nicht mehr installieren habe hier mal einen neuen Dienst so wie ich das gemacht habe.. währe suuuper wenn mir jemand weiterhelfen könnte, vielen Dank |
Re: NT Dienst wie normale Anwendung mit Formular (zb. VNC,K
Hallo,
Du darfst das Formular natürlich nicht in der dpr-Datei erzeugen, sondern erst dann wenn es wirklich benötigt wird.
Delphi-Quellcode:
Außerdem muss die Property "Interactive" auf True stehen, damit der Dienst mit dem User interagieren kann.
var
aForm: TForm2; begin aForm := TForm2.Create(SvcMgr.Application); try aForm.ShowModal; // oder was auch immer finally aForm.Release; aForm := nil; end; end; Ich hoffe das hilft Dir erstmal weiter. mr2 |
Re: NT Dienst wie normale Anwendung mit Formular (zb. VNC,K
hallo,
ich bekomm das nicht so ganz hin kann mir da noch jemand weiterhelfen?? was brauche ich da sonst noch oder welche units muss ich in den Dienst einfügen ? und wie kann ich das Fenster dann wieder ausblenden ?? :gruebel: bin für jeden Rat sehr dankbar, :oops: |
Re: NT Dienst wie normale Anwendung mit Formular (zb. VNC,K
Ein Dienst kann nicht mit dem eingeloggten Benutzer interagieren. Was er kann sind höchstens Messageboxen anzeigen. Bei Kerio und Konsorten sind es zwei Anwendungen, der Dienst und eine normale Exe zur Konfiguration.
|
Re: NT Dienst wie normale Anwendung mit Formular (zb. VNC,K
Ein Service läuft in einer anderen WindowStation und kann daher (normalerweise) nicht mit dem Benutzer interagieren... ein paar Möglichkeiten gibt es doch:
1) für einfache MessageBoxes liefert die API ein paar Flags die das ermöglichen 2) du installierst deinen Service als interaktiven Service (dann bekommt er die interaktive WindowStation WinSta0 zugewiesen) 3) du setzt zur Laufzeit die WindowStation und den Desktop |
Re: NT Dienst wie normale Anwendung mit Formular (zb. VNC,K
mhh,
hast du evtl sonst noch eine idee, ich muss eigentlich einfach nur ein kurzes fenster einblenden mit einem Hintergrundbild und ein bischen Text .... den ich natürlich verändern muss weiss nicht ob du den Trhread kennst, da wollte ich eine DLL verwenden mit rundll32.exe da hat mich jeder verwiesen ich solle doch einen Dienst nehmen :gruebel: Das Prog mussim hintergrund laufen und Taskmanager usw. nicht sichtbar sein Dienst währe Optimal danke für eine Antwort ... |
Re: NT Dienst wie normale Anwendung mit Formular (zb. VNC,K
hallo,
meinst du mit interaktivem Service, eine "Service Anwendung" ? hier kann ich dann eine Eigenschaft Interactive auf True setzen, aber dann muss ich doch erst die Form zur Laufzeit erzeugen oder wie meinst du ?? Gruß Steven |
Re: NT Dienst wie normale Anwendung mit Formular (zb. VNC,K
also jetzt hab ichs :bouncing4:
So erzeuge ich das Formular und überprüfe auch gleich mit ob es schonmal erzeugt wurde, bischen in der DP gesucht :coder: if not Assigned(Warnformular) then begin Application.CreateForm(TWarnformular, Warnformular); Warnformular.ShowModal; end; und damit blende ich es wieder aus FreeAndNil(Warnformular); Funktioniert wunderbar Inteactive muss auf True stehen :dancer2: gruß und Danke Steven |
Re: NT Dienst wie normale Anwendung mit Formular (zb. VNC,K
Autsch au au ... aua
Interaktive Services? Mahlzeit ... ich empfehle mal etwas Lektüre zum Thema Sicherheit. Wahlweise direkt: ![]() Oder per Google: ![]() Interaktive Services sollte man, WO ES NUR GEHT VERMEIDEN! Wozu gibt es wohl IPC-Mechanismen, wenn jeder mal eben ein Fenster als hochprivilegierter Benutzer (zB LocalSystem) auf einem beliebigen Desktop aufmachen kann??? Eben ... vergesst meinen Einwurf ... weitermachen. Wer nicht genug Sicherheitsprobleme hat, schafft sich welche. Außerdem, wieso ist diese Frage als "Offene Frage" geflaggt? |
Re: NT Dienst wie normale Anwendung mit Formular (zb. VNC,K
mhh wenn das ein Sicherheitsproblem darstellt, hast du eine andere Idee ??
ich nicht kann ich das nicht irgendwie umgehen ? mit der offenen Frage war ich das :oops: wie bekommt man die wieder weg ? gruß hm |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:37 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