//申请权限
procedure Get_Shutdown_Privilege;
varrl: Cardinal;
hToken: Cardinal;
tkp: TOKEN_PRIVILEGES;
begin
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken);
if LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid) then
begin
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
tkp.PrivilegeCount := 1;
AdjustTokenPrivileges(hToken, False, tkp, 0, nil, rl);
end;
end;
procedure Tfrmmain.N27Click(Sender: TObject);
begin
if MessageBox(Handle, PChar('是否退出马可波罗系统并【关机】?'), PChar('警告'), MB_YESNO or MB_ICONWARNING) = idyes then
begin
Get_Shutdown_Privilege;
ExitWindowsEx(EWX_SHUTDOWN+EWX_FORCE+EWX_POWEROFF+EWX_FORCEIFHUNG,0);
end;
end;