![]() |
aus Dienst herraus Anwendung starten
Hallo,
ich bin neu hier, aber in einen anderen Delphi-Forum kein unbeschriebenes Blatt. Da ich aber bzgl. meines Problems hier ein paar nützliche Hinweise entdeckt habe, versuche ich hier mal mein Glück. Mein Problem in der langen Version(ganz unten): ![]() Mein Problem kurz: Ich habe einen Dienst, der eine Anwendung starten soll. Mit ShellExecute und WinExec geht das nicht. Aber mit CreateProzess konnte ich die Anwendung starten, aber ich sehe keine Oberfläche, weil die Anwendung vom Dienst das SYSTEM als Benutzer erbt, was auch der Grund sein wird, weshalb die beiden anderen Funktionen nicht greifen. In diesen Forum habe ich viel über CreateProzessAsUser und CreateProcessWithLogonW gelesen. Beide Funktionen versprechen Erfolg, jedoch muss bei beiden der Benutzername und das Passwort eingegeben werden. Genau das kenne ich jedoch nicht!
Die hier im Forum gefunden Theman bzgl. dieser Funktion haben aber aus meiner Sicht den Nachteil, dass ich Benutzername und Passwort kennen muss. Ich müsste also sowas wie CreateProzessAsAktiveUser haben, um einen Prozess zu erzeugen, welcher unter den aktiven Benutzer läuft. Nur wie geht das? Danke, mexx81 |
Re: aus Dienst herraus Anwendung starten
Zitat:
|
Re: aus Dienst herraus Anwendung starten
Soll ein Dienst mit dem Benutzer interagieren können, muss es ein interaktiver diesnt sein. Dies wird von Microsft allerdings nicht empfohlen, das dieses Vorgehen eine sicherheitslücke darstellt. Unter Vista hat Microsoft auch die interaktiven Dienste abgeschafft.
Um mit einem dienst zu kommunizieren nimmt man deswegen ein Programm im User-Mode, welches über Mailslots, named Pipes etc, mit dem Dienst kommuniziert. |
Re: aus Dienst herraus Anwendung starten
verständnisfrage:
warum/wie/weshalb gibt es z.b. bei einigen (antiviren-)programmen einen zusätzlichen prozess welcher als eine art watchdog fungiert? programm wird gekillt - prozess sieht das und startet das ganze neu. wie wird das denn gemacht? gruß reli |
Re: aus Dienst herraus Anwendung starten
Wenn der Watchdog unter dem gleichen Konto wie das zu überwachende Programm/Dienst läuft sollte es kein Problem darstellen.
Bzw. bei der Installation des Programms werden entsprechende Konten eingerichtet welche die entsprechenden Rechte haben. |
Re: aus Dienst herraus Anwendung starten
ah okay... wieder was dazu gelernt..
gruß reli |
Re: aus Dienst herraus Anwendung starten
Zitat:
Delphi-Quellcode:
Units zum Einbinden sind: JwaWtsApi32, JWAWinBase
var
hToken : THandle; si: TStartupInfo; pi: TProcessInformation; ... if WTSQueryUserToken(WtsGetActiveConsoleSessionID, hToken) then begin FillChar(si, SizeOf(si), 0); with si do begin cb := SizeOf(si); dwFlags := STARTF_USESHOWWINDOW; wShowWindow := SW_NORMAL; end; if not CreateProcessAsUser(hToken, PChar(strMonitorPath), nil, nil, nil, False, NORMAL_PRIORITY_CLASS or CREATE_NEW_PROCESS_GROUP, nil, nil, si, pi) then begin OutCount := 0; MessageBox(0,PChar(SysErrorMessage(GetLastError)),'',MB_SERVICE_NOTIFICATION or MB_OK); end else begin Self.SendToMonitorPipe('RESETMONITOR' + #0); Self.SendToMonitorPipe('SHOWMONITOR' + #0); OutCount := 1; end; end else begin OutCount := 0; MessageBox(0,PChar(SysErrorMessage(GetLastError)),'',MB_SERVICE_NOTIFICATION or MB_OK); end; CloseHandle(hToken); |
Re: aus Dienst herraus Anwendung starten
|
Re: aus Dienst herraus Anwendung starten
Die Lösung von madas werde ich mir wohl mal in Ruhe ansehen müssen. Der Link von Luckie ist mein Beitrag, den ich ganz oben schon verlinkt habe! Da habe ich eine, naja, "Ganz-okay-Lösung" gefunden, die ich zunächst verwenden werde. Vista, Vista, Vista!!! Warum glauben alle nur, dass Vista ein Thema ist. Ich bin Admin einer Firmengruppe und sowohl meine Kollegen, als auch die Admins anderen Firmen sagen alle definitiv: Kein Vista vor 2009, wenn überhaupt! Für Firman hat Vista absolut keine Vorteile, nicht einen!!!! Nur Nachteile!!!! Vista kann nichts, was XP nicht auch schon kann. Alle andere zusätzlichen Funktionen von Vista sind für Firmen völlig unrelevant und fressen nur Performance.
|
Re: aus Dienst herraus Anwendung starten
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04: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