本文整理自网络,侵删。
procedure Restart;var TokenHandle: THandle; TokenPrivileges: TTokenPrivileges;begin if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, TokenHandle) then if LookupPrivilegeValue(nil, 'SeShutdownPrivilege', TokenPrivileges.Privileges[0].Luid) then begin TokenPrivileges.PrivilegeCount := 1; TokenPrivileges.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(TokenHandle, False, TokenPrivileges, SizeOf(TokenPrivileges), TTokenPrivileges(nil^), DWORD(nil^)); end; ExitWindowsEx(EWX_REBOOT, 0);end;
相关阅读 >>
Delphi+access错误"不正常地定义参数对象。提供了不一致或不完整的信息。"
Delphi program name、process id、window handle、process handle 的转换函数
更多相关阅读请进入《Delphi》频道 >>