Kod: Tümünü seç
var
tkHandle : THandle;
BufferLun,ret : DWORD;
tk,tkPrevious : TTokenPrivileges;
LID : TLargeInteger;
LUID : TLuIDAndAttributes;
versione : TOSVersionInfo;
begin
BufferLun := 1024;
ret := 0;
versione.dwOSVersionInfoSize := sizeof(versione);
GetVersionEx(versione);
if versione.dwPlatformId = VER_PLATFORM_WIN32_NT then
begin
tkHandle := GetCurrentProcess;
OpenProcessToken(tkHandle,TOKEN_ALL_ACCESS,tkHandle);
LookupPrivilegeValue(PChar(''),PChar('SeShutDownPrivilege'),LID);
LUID.Luid := LID;
LUID.Attributes := SE_PRIVILEGE_ENABLED;
tk.PrivilegeCount := 1;
tk.Privileges[0] := LUID;
AdjustTokenPrivileges(tkHandle,False,tk,BufferLun,tkPrevious,ret);
end;
ExitWindowsEx(EWX_SHUTDOWN or EWX_PowerOff,0);
end;
Kod: Tümünü seç
ExitWindowsEx(EWX_REBOOT or EWX_FORCE,0);