ShutDown

uses windows; const EWX_LOGOFF = 0; //重新启动计算机并切换到MS-DOS方式 EWX_SHUTDOWN = 1; //关闭计算机 - EWX_REBOOT = 2; //重新启动计算机 - EWX_FORCE = 4; //关闭所有程序并以其他用户身份登录 var hToken: THandle; tkp: TOKEN_PRIVILEGES; ReturnLength: DWord; begin readln; if (not OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_ALL_ACCESS or TOKEN_QUERY, hToken)) then begin exit; end; LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid); tkp.PrivilegeCount := 1; tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; ReturnLength := 0; AdjustTokenPrivileges(hToken, FALSE, tkp, 0, nil, ReturnLength); if (GetLastError() <> ERROR_SUCCESS) then begin exit; end; if (not ExitWindowsEx(EWX_REBOOT, 0)) then //关机 begin exit; end; end.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(ShutDown)