Einzelnen Beitrag anzeigen

new32

Registriert seit: 10. Mai 2005
160 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Programm aus Dienst herraus Beenden/Starten usw.

  Alt 19. Jul 2008, 20:17
Der einfachste Weg dürfte über CreateProcessWithLogonW sein.
CreateProcess reicht hier nicht, du möchtest ja nicht alle Anwendungen mit Systemrechten starten.

Soll dein Programm auch unter nt 4 laufen musst du mit LogonUser und CreateProcessAsUser arbeiten.
Allerdings musst du hier alles manuell laden (Benutzerdaten...)

Wenn du kein Passwort eingeben lassen willst kannst du dir auch ein Token von einem unter dem Benutzerkonto laufendem Prozess schnappen mit DuplicateToken clonen und an CreateProcessAsUser übergeben.

Damit die Programme auf dem richtigen Desktop angezeigt werden musst du den in den StartupInformationen angeben.
Zusätzlich musst du dem betreffenden Benutzer natürlich Zugriffsrechte auf den Desktop einräumen. Sonst gibts nen Fehler.
Wenn bereits Programme unter dem Benutzerkonto laufen, hat der betreffende Benutzer natürlich die entsprechenden Rechte, also fällt dieser Schritt weg.


Das Beenden von Prozessen sollte doch eigentlich genauso funktionieren, wie mit nem normalen Prozess.
Allerdings musst du aufpassen, dass nicht aufeinmal jeder alle Programme beenden kann!!!

Vielleicht auch von einem Programm Beenden lassen, dass du mit der oben beschreibenen Methode gestartet hast. Alles Andere führt zu Sicherheitsproblemen.

MfG
~?&/%§$§%\&?~
8)
  Mit Zitat antworten Zitat