Einzelnen Beitrag anzeigen

Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#3

Re: Programm aus Service / Systemdienst starten ...

  Alt 24. Jul 2008, 10:03
Naja, einige Probleme und Fehler sehe ich da drin schon:

1. GetActiveWtsSession liefert eine Session zurück. Es können aber mehrere vorhanden sein. Welche soll denn nun verwendet werden? Meist geht das nur über ein Programm, welches schon dort ist und vom User angewiesen worden ist, etwas zu machen. Sonst kann man auch gleich WtsGetActiveConsoleSession nehmen.

2. Eine modale Messagebox aus dem Service? Normalerweise sind Dienste wiederverwendbar. D.h. es ist eine Schleife drin, in der Dinge abgearbeitet werden. Dort zu blocken würde bedeuten, dass ein anderer User nicht dasselbe machen kann.
Am besten wäre es, wenn der Dienst daher sofort ein Programm in die Session startet und das Programm den Rest macht. Man könnte natürlich auch einen Thread machen (kompliziert zu verwalten).

3. CreateProcessAsUser wird fehlschlagen, wenn parameter inherit handle auf true ist und die Session eine andere. Handlevererbung über Sessions geht nicht.

Mit JWSCL gehts auch einfacher JwCreateProcessInSession
(SVN Trunk version enthält neuste Version)
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat