實現關機重啓機器(十一)
本文講述,如何實現系統的關閉,重啓,註銷操作。
1. 創建一個對話框工程:ShutDownResetCompu
2. 在OnInitDialog()中添加一下代碼,來修改訪問令牌,如下:
staticHANDLEhToken;
staticTOKEN_PRIVILEGEStp;
staticLUIDluid;
//獲得進程訪問令牌句柄,修改令牌TOKEN_ADJUST_PRIVILENGES
OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken);
//獲取LUID的值
LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&luid);
tp.PrivilegeCount = 1;
tp.Privileges[0].Luid = luid;
tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
//對訪問令牌進行修改
AdjustTokenPrivileges(hToken,FALSE,&tp,sizeof(TOKEN_PRIVILEGES),NULL,NULL);
3. 添加一個“關閉計算機”按鈕,代碼如下:
ExitWindowsEx(EWX_POWEROFF,0);
4. 添加一個“重啓計算機”按鈕,代碼如下:
ExitWindowsEx(EWX_REBOOT,0);
5. 添加一個“註銷計算機”按鈕,代碼如下:
ExitWindowsEx(EWX_LOGOFF,0);
完成,可以實現對操作系統的操作。