C++实现计算机自动关机的问题

运行定时关机时总显示计划的关闭被取消是什么意思,怎么解决?谢谢

 #include <cstdlib>
#include <Conio.h>
#include <iostream>
//#include<stdlib.h>
#include<string.h>
using namespace std;
int main()
{
    int i;
    cout<<"1、关机"<<endl
        <<"2、重启"<<endl
        <<"3、注销"<<endl
        <<"4、休眠"<<endl
        <<"5、锁定"<<endl
        <<"6、取消"<<endl;
    cin>>i;
    switch(i)
    {
    case 1:{
        int j;
        cout<<"1、关机"<<endl
            <<"2、定时关机"<<endl
            <<"3、取消定时关机"<<endl
            <<"4、取消"<<endl;
        cin>>j;
        switch(j)
        {
        case 1:
            system("shutdown -s -t 0");
            break;
        case 2:{
            int t;
            cin>>t;         
            char b[50]; 
            char  shut[]="shutdown   -s   -t ";   
            printf("%s\n",itoa(t,b,10));//把10进制的125转成字符并输出。
            system(strcat(shut,b));     //将右部分字符串连接到左部分,并放入到system("");
        }
        case 3:
            system("shutdown -a");
            break;
        case 4:
            return 0;
        default:
            return 0;
        }
        break;
    }
    case 2:
        system("shutdown -r");
        break;
    case 3:
        system("shutdown -l");
        break;
    case 4:
        system("shutdown -h");
        break;
        case 5:
        system("rundll32.exe user32.dll,LockWorkStation ");
        break;
    case 6:
        return 0;
    default:
        return 0;
    }
    return 0;
    system("pause");
}

case 2:{
int t;
cin>>t;

char b[50];
char shut[]="-s -t ";

printf("%s\n",itoa(t,b,10));//把10进制的125转成字符并输出。
strcat(shut,b); //将右部分字符串连接到左部分,并放入到;
ShellExecute(NULL, NULL, "C:\Windows\System32\Shutdown.exe", shut, NULL, SW_SHOWNORMAL);
}

debug跟踪下那些命令都是你需要的吗?

你先在cmd 窗口下 输入shutdown -s -t + 时间参数试一下。

改成用ShellExecute调用shutdown.exe就可以了,不要用system
ShellExecute(NULL, NULL, "C:\Windows\System32\Shutdown.exe", "-s -t 0", NULL, SW_SHOWNORMAL);