![]() |
ExitWindowsEx
Hi Leute,
ich hab hier eine Procedure, die ich von einem Dienst aus aufrufe. Es soll mittels EWX_SHUTDOWN und EWX_FORCE der Rechner heruntergefahren werden. Es wird aber nur ein Logoff durchgeführt. Hat einer einen Tipp, woran das liegen kann? Hier die Procedure
Delphi-Quellcode:
Ich übergeben in <flag> EWX_SHUTDOWN and EWX_FORCE.
function TService1.ExitWindow(flag: Word): Boolean;
var vi: TOSVersionInfo; hToken: THandle; tp: TTokenPrivileges; h: dWord; begin vi.dwOSVersionInfoSize:=SizeOf(vi); GetVersionEx(vi); if vi.dwPlatformId=VER_PLATFORM_WIN32_NT then begin OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,hToken); LookupPrivilegeValue(nil, 'SeShutDownPrivilege', tp.Privileges[0].Luid); tp.PrivilegeCount:=1; tp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED; h:=0; AdjustTokenPrivileges(hToken, False, tp, 0, pTokenPrivileges(nil)^,h); CloseHandle(hToken); result:=ExitWindowsEx(flag,0); //if result then Writelog('True') else Writelog('False'); end else begin result:=ExitWindowsEx(flag,0); end; end; Die Procedure benutze ich, weil der Dienst später umgeschreiben wird, damit ohne große Änderungen ein Prog für W98 draus gemacht werden kann. |
|
Mach aus dem and mal ein or.
|
Captnemo <---Den Kopf immer auf die Tischkante hauend :mrgreen:
Schei..e or :freak: :freak: Hast natürlich recht. Ich sollte meine Binde mit den 3 Punkten wieder rauskramen :mrgreen: :mrgreen: :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:54 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