![]() |
Vista PC mit NT-Service herunterfahren / Benutzer ausloggen
Hallo,
hat jemand eine Ahnung wie man aus einem NT-Service heraus Windows Vista herunterfahren kann ? Ich habe ![]() Mein Code:
Delphi-Quellcode:
InitiateSystemShutdown('', // shut down localhost
'Benutzer werden ausgeloggt !', // message to user 10, // time-out TRUE, // ask user to close apps FALSE); // reboot after shutdown Benötigt der Systemdienst bestimmte Privilegien um den Vista PC herunterzufahren ? KUBA |
Re: Vista PC mit NT-Service herunterfahren / Benutzer auslog
Zitat:
|
Re: Vista PC mit NT-Service herunterfahren / Benutzer auslog
ja, stimmt. Herunterfahren geht auch, aber die Benutzerabmeldung funktioniert nicht im NT-Service.
Hier mein Code:
Delphi-Quellcode:
function MyExitWindows(RebootParam: Longword): Boolean; var TTokenHd: THandle; TTokenPvg: TTokenPrivileges; cbtpPrevious: DWORD; rTTokenPvg: TTokenPrivileges; pcbtpPreviousRequired: DWORD; tpResult: Boolean; const SE_SHUTDOWN_NAME = 'SeShutdownPrivilege'; begin if Win32Platform = VER_PLATFORM_WIN32_NT then begin tpResult := OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, TTokenHd); if tpResult then begin tpResult := LookupPrivilegeValue(nil, SE_SHUTDOWN_NAME, TTokenPvg.Privileges[0].Luid); TTokenPvg.PrivilegeCount := 1; TTokenPvg.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; cbtpPrevious := SizeOf(rTTokenPvg); pcbtpPreviousRequired := 0; if tpResult then Windows.AdjustTokenPrivileges(TTokenHd, False, TTokenPvg, cbtpPrevious, rTTokenPvg, pcbtpPreviousRequired); end; end; Result := ExitWindowsEx(RebootParam, 0); end; procedure TWDay.Button2Click(Sender: TObject); begin MyExitWindows(EWX_POWEROFF or EWX_FORCE); end; Warum funktioniert das Abmelden des Benutzers mit dem NT-Service nicht ? KUBA |
Re: Vista PC mit NT-Service herunterfahren / Benutzer auslog
Welche Funktion benutzt du denn nun? MyExitWindows oder doch InitiateSystemShutdown? :gruebel:
|
Re: Vista PC mit NT-Service herunterfahren / Benutzer auslog
Zitat:
kuba |
Re: Vista PC mit NT-Service herunterfahren / Benutzer auslog
Zitat:
|
Re: Vista PC mit NT-Service herunterfahren / Benutzer auslog
Hast du denn schon mal den Rückgabeparameter ausgewertet und mal geguckt, was das System für einen letzten Fehler meldet, wenn du InitiateSystemShutdown verwendest?
|
Re: Vista PC mit NT-Service herunterfahren / Benutzer auslog
Hallo Luckie,
leider kenne ich mich noch nicht so gut aus, wie kann ich die Rückgabeparameter auswerten ? Bei mir funktioniert das meiste per try and error, so habe ich Routine 2 mit EWX_SHUTDOWN versucht. Das funktioniert bei einem normalen Benutzer (wird abgemeldet), beim NT-Service fährt der PC jedoch runter und schaltet ab. kuba |
Re: Vista PC mit NT-Service herunterfahren / Benutzer auslog
![]() Zitat:
|
Re: Vista PC mit NT-Service herunterfahren / Benutzer auslog
Da der PC herunterfährt müsste ich das Ergebnis irgendwo ablegen, z.B. in der Registry oder einem File ?
Kann mir jemand kurz erläutern (am besten mit einem kleinen Beispiel) wie ich den Rückgabewert herausfinde ? kuba |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz