Moin,
ich hab diesen code "irgendwo" hier im form entdeckt:
Delphi-Quellcode:
function ExitWin(flag:word): Boolean;
var vi : TOSVersionInfo;
hToken : THandle;
tp : TTokenPrivileges;
h : DWord;
begin
//result := false;
vi.dwOSVersionInfoSize:=SizeOf(vi);
GetVersionEx(vi);
if vi.dwPlatformId = VER_PLATFORM_WIN32_NT
then // Windows NT
begin
// Achtung bei Delphi 2 muß @hToken stehen ... !!!! ?????
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);
end
else // Windows 95
begin
Result := ExitWindowsEx(flag,0);
end;
end;
kann mir jemand sagen wie diese funktion GENAU funktioniert? ich kapier da alles nicht. wieso geht ExitWIndowsEx nicht auch ohne den ganzen code? (sicher wegen den rechten)..aber naja den rest wüsst ich auch gern.