![]() |
Aus e. Dienst ein Programm im Kontext des akt. Users starten
Hallo zusammen!
Ich habe einen Dienst geschrieben der über Indy/TCP ferngesteuert Programme starten kann (hausintern als Unterstützung in Verbindung mit unserer Web-Plattform). Allerdings starten die Programme als SYSTEM, was für Word oder Excel ein Problem darstellt. Ich mache das mit ShellExecute und habe natürlich mittlerweile auch CreateProcessAsUser gefunden. Mit CreateProcessAsUser habe ich aber das Problem, dass ich dann mit LogonUser erst mal ein Token besorgen müsste.. aber ... ich will eigentlich keinen User anmelden! Ist kein User angemeldet sollte der Dienst gar nichts machen (abgesehen davon, das der Dienst nur über die Interaktion im Browser aktiv werden kann). Auch mehrere angemeldete aber inaktive User interessieren mich nicht, letzlich würde ich das Token vom momentan am Rechner arbeitenden User brauchen, um damit dann z.B.: Word zu starten und die im Browser angewählte Datei darin zu öffnen... Natürlich wäre es noch besser, wenn ich weiterhin ShellExecute verwenden könnte, denn ich will eigentlich auch nicht vorgeben mit welchem Programm eine Datei geöffnet wird, sondern sie eben mit der im System dafür registrierten Anwendung öffnen. |
Re: Aus e. Dienst ein Programm im Kontext des akt. Users sta
Ab Vista ist es Standardmäßig (trotz Haken mit Interaktion) nicht mehr möglich auf den Desktop des angemeldeten Benutzers zu kommen. Du wirst nicht darum herumkommen dafür eine Anwendung zu schreiben die im Autostart läuft und dann mit dem Dienst kommuniziert.
|
Re: Aus e. Dienst ein Programm im Kontext des akt. Users sta
Es gab in der DP jüngst
![]() |
Re: Aus e. Dienst ein Programm im Kontext des akt. Users sta
Zitat:
Autostart finde ich nicht so gut, dann muss man die ganze Zeit "unabsichtlich" gelöschte Links reparieren... ein Dienst hat halt den Vorteil, das er - einmal installiert - brav seinen Dienst verrichtet. |
Re: Aus e. Dienst ein Programm im Kontext des akt. Users sta
"Bei Bedarf startet". Das ist ja gerade der Witz, der Service startet eben nicht das Starter-Programm, sondern es muss selbst laufen.
|
Re: Aus e. Dienst ein Programm im Kontext des akt. Users sta
Zitat:
|
Re: Aus e. Dienst ein Programm im Kontext des akt. Users sta
Folglich solltest du die Lösung aus dem englischsprachigen Thread nehmen: WTSQueryUserToken und CreateProcessAsUser.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:44 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