版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
版权
//Windows专栏收录该内容
59 篇文章1 订阅
订阅专栏
#include "Windows.h"
//强制关闭计算机
bool systemShutDown()
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
//获取进程标志
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) {
return false;
}
//获取关机特权的LUID
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);
if (GetLastError() != ERROR_SUCCESS) {
return false;
}
// 强制关闭计算机
if ( !ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0)) {
return false;
}
return true;
// 强制重启计算机
if ( !ExitWindowsEx(EWX_REBOOT| EWX_FORCE, 0))
return false;
return true;