VC++简单实现关机、重启计算机实例代码
本文以一个实例形式介绍了VC++简单实现关机、重启计算机的方法,代码比较实用,有一定的参考价值。完整实例代码如下:
voidCWebBrowserView::OnMenuShutdown()
{
//TODO:在此添加命令处理程序代码
if(AfxMessageBox("确定要关机吗?",MB_YESNO)==IDYES)
{
HANDLEhToken;
TOKEN_PRIVILEGEStkp;
//Getatokenforthisprocess.
if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken))
{
AfxMessageBox("OpenProcessTokenError!");
return;
}
//GettheLUIDfortheshutdownprivilege.
LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
tkp.PrivilegeCount=1;//oneprivilegetoset
tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
//Gettheshutdownprivilegeforthisprocess.
AdjustTokenPrivileges(hToken,FALSE,&tkp,sizeof(TOKEN_PRIVILEGES),(PTOKEN_PRIVILEGES)NULL,NULL);
if(GetLastError()!=ERROR_SUCCESS)
{
AfxMessageBox("关机失败");
return;
}
//Shutdownthesystemandforceallapplicationstoclose.
ExitWindowsEx(EWX_SHUTDOWN|EWX_FORCE,0);//重启只需要把EWX_SHUTDOWN改为EWX_REBOOT
}
}