实现关机重启机器(十一)
本文讲述,如何实现系统的关闭,重启,注销操作。
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);
完成,可以实现对操作系统的操作。