Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi ExitWindowsEx (https://www.delphipraxis.net/4812-exitwindowsex.html)

Captnemo 12. Mai 2003 19:45


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:
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;
Ich übergeben in <flag> EWX_SHUTDOWN and EWX_FORCE.

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.

Daniel B 12. Mai 2003 19:47

Hallo,

siehe hier.

Grüsse, Daniel :hi:

Luckie 12. Mai 2003 19:59

Mach aus dem and mal ein or.

Captnemo 12. Mai 2003 20:05

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