Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Alternative zu einem Dienst (https://www.delphipraxis.net/33496-alternative-zu-einem-dienst.html)

Susanne 8. Nov 2004 11:35


Alternative zu einem Dienst
 
Hallo,

ich hab mal eine Frage, vielleicht hat von euch jemand eine Idee.

Ich wollte bisher meine Anwendung als Dienst laufen lassen, dies funktioniert aber so nicht, da meine Anwendung andere Programme startet usw.

Die Idee war, dieses Programm als Dienst im Hintergrund laufen zu lassen ohne dass der Benutzer dies eben mitbekommt.

Wie könnte ich dies nun verwirklichen?

alcaeus 8. Nov 2004 11:50

Re: Alternative zu einem Dienst
 
Hi Susanne,

was spricht gegen eine Anwendung ohne Form? Der Benutzer bekommt davon auch nicht viel mit. Und was spricht dagegen, es als Dienst zu programmieren? Korrigiert mich falls ich mich irre, aber AFAIK können Dienste sehr wohl andere Programme starten.

Greetz
alcaeus

sakura 8. Nov 2004 11:55

Re: Alternative zu einem Dienst
 
Zitat:

Zitat von alcaeus
Korrigiert mich falls ich mich irre, aber AFAIK können Dienste sehr wohl andere Programme starten.

Stimmt schon, allerdings werden Dienste iA nicht unter dem Userkonto und nicht in der Userumgebung ausgeführt, somit sind die gestarteten Anwendungen nicht für den Anwender erreichbar ;)

...:cat:...

Jelly 8. Nov 2004 12:02

Re: Alternative zu einem Dienst
 
Also da gibst doch bei den Diensten die Option "Datenaustausch zwischen Dienst und Desktop" zulassen. Ich dacht wenn das gesetzt ist, kann man durchaus Anwendungen aus einem Dienst heraus starten lassen, oder irre ich da?

Susanne 8. Nov 2004 12:05

Re: Alternative zu einem Dienst
 
Das die gestarteten Anwendungen nicht für den User erreichbar sind, stört mich nicht im geringsten. Das heisst also, dass ich nicht sehe, dass das Programm wirklich gestartet ist, aber es wurde gestartet und macht seine Arbeit?

alcaeus 8. Nov 2004 12:08

Re: Alternative zu einem Dienst
 
Hi Susanne,

Zitat:

Zitat von Susanne
Das heisst also, dass ich nicht sehe, dass das Programm wirklich gestartet ist, aber es wurde gestartet und macht seine Arbeit?

Nicht ganz. Wenn du z.B. im Dienst eine andere Anwendung mit ShellExecute startest, dann wird dieser Prozess höchstwahrscheinlich im Taskmanager angezeigt. Da die Prozesse aber weiterhin im SYSTEM-Benutzerkonto laufen, kann ein normaler Anwender diese Anwendungen nicht abschießen.

Greetz
alcaeus

Susanne 8. Nov 2004 14:49

Re: Alternative zu einem Dienst
 
Also gut, das ganze habe ich jetzt mit zwei Programmen ausprobiert, notepad.exe und uedit32.exe, beide sind auch im Taskmanager zu sehen und laufen unter System.

Dann habe ich das ganze noch mit einem dritten Programm ausprobiert. ich habe die Exe gestartet. Diese Programm soll nun aber auch noch eine Log-Datei schreiben. Rufe ich das Programm ganz normal auf, schreibt er die LogDatei. Rufe ich das Programm nun mit dem Dienst auf geschieht gar nichts, es ist auch nicht im TaskManager zu sehen und die Log-Datei wird nicht erzeugt. Woran kann dies nun liegen?

alcaeus 8. Nov 2004 14:51

Re: Alternative zu einem Dienst
 
Zitat:

Zitat von Susanne
Rufe ich das Programm nun mit dem Dienst auf geschieht gar nichts, es ist auch nicht im TaskManager zu sehen und die Log-Datei wird nicht erzeugt. Woran kann dies nun liegen?

Das Programm wird nicht gestartet (ach ne :mrgreen:). Greifst du etwa auf user-spezifische ordner zu? Ich meine damit Eigene Dateien, Anwendungsdaten etc. Diese Ordner gibt es für System nicht, deshalb könnte das Programm crashen.

Greetz
alcaeus

Meflin 8. Nov 2004 15:02

Re: Alternative zu einem Dienst
 
Zitat:

Zitat von alcaeus
Zitat:

Zitat von Susanne
Rufe ich das Programm nun mit dem Dienst auf geschieht gar nichts, es ist auch nicht im TaskManager zu sehen und die Log-Datei wird nicht erzeugt. Woran kann dies nun liegen?

Das Programm wird nicht gestartet (ach ne :mrgreen:). Greifst du etwa auf user-spezifische ordner zu? Ich meine damit Eigene Dateien, Anwendungsdaten etc. Diese Ordner gibt es für System nicht, deshalb könnte das Programm crashen.

Greetz
alcaeus

bist du da ganz sicher? ich denke für das system ist _jeder_ ordner vorhanden/sichtbar oder wie dus auch nennen magst. das system ist doch sozusagen der superuser oder irre ich mich da? selbst als nicht admin siehst du ja die ordner anderer benutzer... und solange die nicht passwortgeschützt sind kannst du auch drauf zugreifen

alcaeus 8. Nov 2004 15:06

Re: Alternative zu einem Dienst
 
Hi Meflin,

Zitat:

Zitat von Meflin
bist du da ganz sicher? ich denke für das system ist _jeder_ ordner vorhanden/sichtbar oder wie dus auch nennen magst. das system ist doch sozusagen der superuser oder irre ich mich da? selbst als nicht admin siehst du ja die ordner anderer benutzer... und solange die nicht passwortgeschützt sind kannst du auch drauf zugreifen

ich glaube du hast mich da etwas missverstanden. Ein Beispiel:
über die Umgebungsvariablen bekomme ich den Pfad des temporären Verzeichnisses des jeweiligen Benutzer. Solange dies ein interaktiver Benutzer ist, funktioniert der Code. Wird der Code aber als SYSTEM ausgeführt, dann findet das System für diesen Benutzer kein Temp-Verzeichnis, da es nicht gibt. Das Problem sind nicht also fehlende Berechtigungen, sondern einfach die Tatsache dass der Benutzer "SYSTEM" keine Ordner wie "Eigene Dateien" etc. hat.

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 Uhr.
Seite 1 von 2  1 2      

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