Mastodon

[code lang=”delphi”]var
hToken : THandle;
tkp, ptkp : TTokenPrivileges;
i : dword;

begin
//* Get a token for this process. */
OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,
hToken);
//* Get the LUID for the shutdown privilege. */
LookupPrivilegeValue(NiL, ‘SE_SHUTDOWN_NAME’, tkp.Privileges[0].Luid);
tkp.PrivilegeCount := 1; ///* one privilege to set */
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
//* Get the shutdown privilege for this process. */
AdjustTokenPrivileges(hToken,FALSE,tkp,0,ptkp,i);
//* Cannot test the return value of AdjustTokenPrivileges. */
GetLastError;
//* Shut down the system and force all applications to close. */
ExitWindowsEx(EWX_SHUTDOWN or EWX_FORCE, 0);
end.[/code]

[tags]Delphi, API[/tags]

0 Kommentare zu “ReBoot

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.