Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Service Application - CreateProcess...

  Alt 26. Okt 2011, 10:29
Der Dienst soll ... Gestartet werden können dann mehrere Anwendungen
Ich habe es mal auf das wesentliche zusammengeschrumpft.

[qzuote]als eine normale Konsolenanwendung, funktioniert es wunderbar. Die einzelnen Anwendungen starten und werden direkt einem Prozessorkern zugewiesen.[/quote]
Du solltest dich mit der Funktionsweise und internen Aufbau von Windows vertraut machen. Du scheinst da ziemlich ins Blaue zu programmieren. Ein Dienst läuft in einer anderen WindowsStation als die Benutzer Prozesse. Innerhalb dieser WindowsStation existiert wieder ein Desktop in dem dann die vom Dienst gestarteten Programme laufen. Der interaktive Anwender sieht die gestarteten Programm als nicht und kann somit auch nicht mit ihen interagieren.

Zitat:
Ich habe schon mehrere Ansätze verfolgt. Zunächst lief der Dienst unter 'Lokales System', mit der Folge, dass ein Prozess im Task Manager unter einer ProzessID vermerkt wurde, jedoch schien dieser "tot" zu sein, da er nichts gemacht hat.
Was heißt "tot"?`Wenn er keine CPU-Zeit verbraucht hat, heißt das nur, dass der nichts zu tun hatte.

Zitat:
Danach habe ich die Option "Datenaustausch zwischen Dienst und Desktop zulassen" aktiviert.
Aua. Läuft das unter dem Motto: "Wir haben noch nicht genug Sicherheitslücken, lasst uns selbst noch welche aufreißen"? Diese Option gibt es ab Vista nicht mehr. wäre also auch keine Lösung, wenn es funktioniert hätte.

Zitat:
Auf den Prozess im Task Manager kann ebenfalls nicht zugegriffen werden.
Logisch. Da der Prozess vom Dienst gestartet wurde, läuft er auch in dessen Benutzerkontext und erbt dessen Berechtigungen usw. Und unter Windows kann man eben nicht so einfach die Prozesse eines anderen Benutzers beenden.

Zitat:
Als letztes habe ich versucht den Dienst über ein anderes Benutzerkonto mit Admin-Rechten zu starten, leider auch wieder ohne Erfolg.
Siehe ganz oben.

Was du eigentlich willst, ist doch dass dein Dienst ein Programm startet mit dem der angemeldete interaktive Benutzer interagieren kann oder? Eventuell hilft dir dabei das: http://www.c-plusplus.de/forum/263737
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat