Zitat von
ringli:
Zitat von
kuba:
Die erste funktioniert gar nicht (hab ich auch geschrieben). Die zweite fährt den PC herunter, es funktioniert jedoch nicht mit dem Benutzer ausloggen.
Hast du denn mal MagicAndre's Hinweis beachtet? Ich hatte mir auf die Schnelle ein
VCL-Testprojekt mit InitiateSystemShutdown geschrieben das erst auch nicht funktionierte. Nachdem ich das SE_SHUTDOWN_NAME-Privileg aktiviert habe, funktionierte es. Ob sich die Funktion allerdings aus einem Dienst heraus aufrufen lässt habe ich nicht probiert da ich bisher noch keinen Dienst programmiert habe.
Routine 2 eledigt das mit SE_SHUTDOWN_NAME Privileg, es wird im NT-Dienst auch benötigt sonst passiert nichts. Aber das Ausloggen will mir nicht gelingen, der PC schaltet sich ab statt die Benutzer auszuloggen.
Meine Vermutung geht dahin, dass ich dem System irgendwie mitteilen muss welcher Benutzer ausgeloggt werden soll - Da der Benutzer auf Vista Console "1" arbeitet und der NT-Service immer auf Vista Console 0 vermute ich dass der Systemdienst "sich abmeldet" und nicht den Benutzer.
Es wäre für mich sehr hilfreich, wenn mir jemand erläutern könnte wie ich im NT-Service GetLastError abfragen kann.
Ansonsten ... try and error
kuba