Einzelnen Beitrag anzeigen

madas

Registriert seit: 9. Aug 2007
207 Beiträge
 
#15

Re: aus Dienst herraus Anwendung starten

  Alt 26. Nov 2007, 14:18
Zitat von Dezipaitor:
if WTSQueryUserToken(WtsGetActiveConsoleSessionID, hToken) then Das Problem mit dieser Zeile ist, dass immer die physikalische Konsole verwendet wird. D.h. wenn kein Benutzer lokal eingeloggt ist, dann schlägt die Funktion fehl. Dies kann z.b. passieren wenn jemand über RemoteDesktop eingeloggt ist (ohne den Desktop als ConsoleSession zu starten).
Auf jeden Fall kann die gestartete Anwendung auf dem falschen Desktop gestartet werden.

Am einfachsten kann man dieses Problem lösen, wenn der Benutzer eine Aktion auslöst, die diese Anwendung startet. D.h. eine Anwendung kommuniziert mit dem Service, der dann einen neuen Prozess startet. Durch die Kommunikation kann der Service erfahren, in welche Session und Desktop die Anwendung steht und dort den neuen Prozess starten.
Also ich verwende das für einen Update Service. Die Anwendung fragt dann den Service, ob ob ein Update machbar ist oder nicht. Um dem User Infos zum Updatevorgang zu zeigen, gibt es einen Update Monitor. Falls er nicht läuft wird er vom Service im Userkontext gestartet.

Klingt doch eigentlich nach deiner "Problemlösung", oder?

Ich frage deshalb nochmal, weil auf gleiche Weise dann auch wieder die Anwendung selber nach einen Update gestartet wird. Sie muss ja auch wieder im User Kontext laufen.
  Mit Zitat antworten Zitat