1、强制系统关机
功能:让系统强制关机;
ExitWindowsEx 这个 API 可以关闭系统,但是请注意这个函数需要进程具有 SE_SHUTDOWN_NAME 特权(13-18行),另外就像我们很多时候关机会提示关闭一些应用程序一样,不加 EWX_FORCE 标志也会有交互式提示,如果想要强制关闭就加上标志 EWX_FORCE。
1 #include <windows.h> 2 3 bool MySystemShutDown() 4 { 5 HANDLE hToken; 6 TOKEN_PRIVILEGES tkp; 7 8 //获取进程标志 9 if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) 10 return false; 11 12 //获取关机特权的LUID 13 LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); 14 tkp.PrivilegeCount = 1; 15 tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 16 17 //获取这个进程的关机特权 18 AdjustTokenPrivileges(hToken, false, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0); 19 if (GetLastError() != ERROR_SUCCESS) return false; 20 21 // 强制关闭计算机 22 if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0)) 23 return false; 24 return true; 25 } 26 27 int main() 28 { 29 MySystemShutDown(); 30 return 0; 31 }
标签:关机,return,用到,程序,EWX,tkp,false,好玩,FORCE From: https://www.cnblogs.com/Arthurian/p/17741734.html