HANDLE hToken = NULL;
::OpenProcessToken(::GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
TOKEN_PRIVILEGES tkp;
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
::AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);
int nErroCode = ::GetLastError();
//重启
::ExitWindowsEx(EWX_REBOOT, NULL);
//关机
(::ExitWindowsEx(EWX_SHUTDOWN | EWX_POWEROFF, NULL)
重启/关闭Windows
最新推荐文章于 2024-04-26 15:07:57 发布