一些好玩但很少用到的小程序

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 }

 

posted on 2023-10-03 22:04  Arthurian  阅读(50)  评论(0编辑  收藏  举报