如果你调用的shell (command命令)来关机设置强制关机就ok
如system(“shutdown -f -s -t 0”);即可
如果调用api函数ExitWindowsEx
BOOL SystemShutdown()
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
/* OpenProcessToken() 这个函数的作用是打开一个进程的访问令牌
GetCurrentProcess() 函数的作用是得到本进程的句柄*/
if (!OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,&hToken))
return FALSE;
// LookupPrivilegeValue() 的作用是修改进程的权限
LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,
&tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1; // one privilege to set 赋给本进程特权
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
// AdjustTokenPrivileges()的作用是通知Windows NT修改本进程的权利
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
(PTOKEN_PRIVILEGES)NULL, 0);
if (GetLastError() != ERROR_SUCCESS) //失败
return FALSE;
if (!ExitWindowsEx(EWX_POWEROFF | EWX_FORCE, 0)) //参数在这里设置。强行退出WINDOWS(EWX_FORCE)。
return FALSE;
return TRUE;
}
这个我不会,给电脑定时关机,我使用的是定时关机3000。
定时关机 3000有五种让电脑定时关机的方法,如每天几点几分关机或者等待多长时间后关机或者开机多长时间关机以及网速低于多少的时候关机和键盘鼠标多次时间没有反应关机。
还不赶快下载定时关机3000到您的电脑,试试定时关机的效果怎么样?
这个是调用系统关机 API 时弹出的,你程序没法控制,只能修改你关机的方式。
如果你再WIN32环境下:在主函数中设置不弹出关机警告。
如果在MFC或者其他环境下:在主对话框初始化的时候设置禁止弹出窗口!