关于windows7的一个关机小程序(控制台)

  • 格式:docx
  • 大小:70.02 KB
  • 文档页数:11

[注意]:本代码围绕at和shutdown指令编写的程序,主要用于windows7的(倒计时/定时)关机操作(由于at指令被windows10弃用,所以windows10使用会受到很大的限制甚至无法使用)

打印的时候一些表示方式:

shutdown /s :关闭系统

shutdown /s /t 600 :开始倒计时600秒后关闭系统

15:00 shutdown /s :15:00后按默认方式关机

15:00 shutdown /s /t 600 :15:00提醒并开始倒计时600秒后关闭系统

本代码完全安全无病毒,若在进行设置(倒计时/定时)关机时,安全软件发出拦截警告,请允许运行

最后,本代码开放(在windows7关机小程序.cpp文件内),允许任意复制、粘贴、修改和发布。

以下是源代码(建议复制到*.cpp文件内查看)

#include"stdio.h"

#include "windows.h"

#include"string.h"

#include "stdlib.h"

#include"conio.h"

//int _System(const char * cmd, char *pRetMsg, intmsg_len);

int menu(char *opt);//主菜单函数 int menu1(); int menu2();

int main()

{

char opt[32]={0};

while(1)

{

menu1();

printf("1>---------------------------------------------------------------------------<1\n");

printf("1>请输入当前主菜单操作:");

fgets(opt,sizeof(opt),stdin);

opt[strlen(opt)-1]='\0';

printf("1>---------------------------------------------------------------------------<1\n");

if (strcmp(opt,"5")==0

||strcmp(opt,"离开")==0

||strcmp(opt,"Go away")==0)return 0;

menu(opt);

printf("\n");

system("pause");

system("cls");

}

return 0;

}

int menu(char *opt)//主菜单函数

{

if (strcmp(opt,"1")==0

||strcmp(opt,"取消本次关机")==0

||strcmp(opt,"Cancel this shutdown")==0)

{

system("shutdown -a");

return 1;

} if (strcmp(opt,"2")==0

||strcmp(opt,"设置关机")==0

||strcmp(opt,"Set off")==0)

{

char opt1[32]={0};

char sec[16]="/t ";

char mould1[32]="at ";

char mould2[32]=" shutdown /s ";

printf("1>请输入关机模式《倒计时/定时》:");

fgets(opt1,sizeof(opt1),stdin);

opt1[strlen(opt1)-1]='\0';

if(strcmp(opt1,"倒计时")==0)

{

printf("1>请输入倒计时秒数:");

fgets(sec+3,sizeof(sec),stdin);

sec[strlen(sec)-1]='\0';

strcat_s(mould2,sizeof(mould2),sec);

printf("\n");

system(mould2);

}

if(strcmp(opt1,"定时")==0)

{

printf("1>请输入时间(24小时制(24:00)):");

fgets(mould1+3,sizeof(mould1),stdin);

mould1[strlen(mould1)-1]='\0';

if(strlen(mould1)!=strlen("at 22:00")

&&strlen(mould1)!=strlen("at 22:00")

&&strlen(mould1)!=strlen("at 2:00")

&&strlen(mould1)!=strlen("at 2:00"))

{

printf("!>输入格式错误;格式如(24:00/0:00)\n");

return -2;

}

strcat_s(mould1,sizeof(mould1),mould2);

printf("1>请输入提醒倒计时秒数[60]:");

fgets(sec+3,sizeof(sec),stdin);

sec[strlen(sec)-1]='\0'; if(strlen(sec)>strlen("at "))

strcat_s(mould1,sizeof(mould1),sec);

printf("\n");

system(mould1);

}

}

if (strcmp(opt,"3")==0

||strcmp(opt,"打印所有计划")==0

||strcmp(opt,"Print all plans")==0)

{

system("at");

}

if (strcmp(opt,"4")==0

||strcmp(opt,"删除定时计划")==0

||strcmp(opt,"Delete work plan")==0)

{

while (1)

{

char opt1[32]={0};

char mould1[16]="at "; char mould2[16]=" /delete ";

menu2();

printf("1>请输入您的选择:");

fgets(opt1,sizeof(opt1),stdin);

opt1[strlen(opt1)-1]='\0';

system("at");

if (strcmp(opt1,"1")==0

||strcmp(opt1,"离开")==0

||strcmp(opt1,"Go away")==0)return 0;

if (strcmp(opt1,"2")==0

||strcmp(opt1,"删除全部计划")==0

||strcmp(opt1,"Delete all plans")==0)

{

printf("\n");

system("at /delete");

return 0;

}

if (strcmp(opt1,"3")==0

||strcmp(opt1,"按ID删除计划")==0

||strcmp(opt1,"Delete plan by ID")==0)

{

printf("1>根据上表输入要删除的计划的ID:");

fgets(mould1+3,sizeof(mould1),stdin);

mould1[strlen(mould1)-1]='\0';

printf("\n");

system(mould1);

printf("1>确定结束计划(Y/N)\n");

int x=getche();

if(x=='y'||x=='Y')

{

strcat_s(mould1,sizeof(mould1),mould2);

printf("\n");

system(mould1);

printf("1>已删除该计划\n");

}

}

}

}

return 0;

}

int menu1()

{

printf("1>---------------------------------------------------------------------------<1\n");

printf("1>《主菜单》<1\n");

printf("1> 1取消本次关机(Cancel this shutdown) 2设置关机(Set off) <1\n");

printf("1> 3打印所有计划(Print all plans) 4删除定时计划(Delete work plan)<1\n");

printf("1> 5离开(Go away)

<1\n");

printf("1>---------------------------------------------------------------------------<1\n");

return 0;