有时候我们想离开电脑去做别的事情,但用CMD命令定时关机实在太麻烦,还要换算成秒,输错了也是头疼,取消定时关机也很麻烦。总之体验感太差!今天为大家带来一个用C语言实现定时关机。输入分钟后自动启动定时关机计划,支持一键取消定时关机和再从新设定关机时间。
在CMD命令中启动定时关机命令是shutdown -s -t xx。xx为要设定定时关机的时间,单位是秒,执行这个命令后就会启动定时关机计划。取消定时关机命令是:shutdown -a。执行后会取消之前设定的定时关机计划。但如果没有设定定时关机计划,会提示未设置定时关机计划。
同样我们在C语言中也是要用到这个命令,通过system()函数执行定时关机或取消定时关机。
具体实现如下:
输入时间实现关机
//程序分为2个部分:1.按键功能实现实现部分——输入相应的按键进入相应的功能 // 2.执行定时关机或取消定时关机部分 //包含的头文件 #define _CRT_SECURE_NO_WARNINGS//取消vs2017中printf函数不安全warning问题 #include<stdio.h> #include<string.h>//字符串处理函数 #include<windows.h> #include<conio.h>//包含按键交互
功能界面
取消定时关机
这里我先进行设定关机时间,再进入功能区选择。当然也可以反着来
//主函数部分 int main() { DelayShutdown(); Keydown(); return 0; } //功能用两个函数实现 void DelayShutdown();//延时关机函数 void Keydown();//按键交互函数
//按键功能选择部分: void Keydown() { int userKey; while (1) { printf("关机提示语:n1键为取消定时n2键为重新设定时间n0键为退出本程序n"); printf("请输入编号:"); scanf("%d",&userKey); switch (userKey) { case 1: //1.取消定时关机 system("shutdown -a"); Sleep(1000); break; case 2: //重新设定时间 system("shutdown -a");//先取消计划关机,再重新设定时间关机 DelayShutdown(); break; case 0: //退出本程序 printf("正在退出中....n"); Sleep(2000); exit(0); break; default: printf("输入错误!请重新输入!n"); Sleep(1000); } system("cls"); } }
//定时关机功能实现部分: void DelayShutdown() { int delayTemp, delay; char shutdown[30]; printf("请输入设置定时关机的时间(分钟):"); scanf("%d", &delayTemp); delay = delayTemp * 60;//把输入的时间数转为秒 sprintf_s(shutdown, "shutdown -s -t %d", delay);//格式化输出字符串 system(shutdown); }
关于本程序不能在别人电脑上运行问题:
在vs2017中解决方法:
将debug改为release。
进入项目——>属性里面将C/C++——>代码生成——>运行库将/MD或/MDd改为/MT或/MTd再从新编译一下就可以了。