有時候我們想離開電腦去做別的事情,但用CMD命令定時關機實在太麻煩,還要換算成秒,輸錯了也是頭疼,取消定時關機也很麻煩??傊w驗感太差!今天為大家?guī)硪粋€用C語言實現(xiàn)定時關機。輸入分鐘后自動啟動定時關機計劃,支持一鍵取消定時關機和再從新設定關機時間。
在CMD命令中啟動定時關機命令是shutdown -s -t xx。xx為要設定定時關機的時間,單位是秒,執(zhí)行這個命令后就會啟動定時關機計劃。取消定時關機命令是:shutdown -a。執(zhí)行后會取消之前設定的定時關機計劃。但如果沒有設定定時關機計劃,會提示未設置定時關機計劃。
同樣我們在C語言中也是要用到這個命令,通過system()函數(shù)執(zhí)行定時關機或取消定時關機。
具體實現(xiàn)如下:
輸入時間實現(xiàn)關機
//程序分為2個部分:1.按鍵功能實現(xiàn)實現(xiàn)部分——輸入相應的按鍵進入相應的功能 // 2.執(zhí)行定時關機或取消定時關機部分 //包含的頭文件 #define _CRT_SECURE_NO_WARNINGS//取消vs2017中printf函數(shù)不安全warning問題 #include<stdio.h> #include<string.h>//字符串處理函數(shù) #include<windows.h> #include<conio.h>//包含按鍵交互
功能界面
取消定時關機
這里我先進行設定關機時間,再進入功能區(qū)選擇。當然也可以反著來
//主函數(shù)部分 int main() { DelayShutdown(); Keydown(); return 0; } //功能用兩個函數(shù)實現(xiàn) void DelayShutdown();//延時關機函數(shù) void Keydown();//按鍵交互函數(shù)
//按鍵功能選擇部分: 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"); } }
//定時關機功能實現(xiàn)部分: void DelayShutdown() { int delayTemp, delay; char shutdown[30]; printf("請輸入設置定時關機的時間(分鐘):"); scanf("%d", &delayTemp); delay = delayTemp * 60;//把輸入的時間數(shù)轉為秒 sprintf_s(shutdown, "shutdown -s -t %d", delay);//格式化輸出字符串 system(shutdown); }
關于本程序不能在別人電腦上運行問題:
在vs2017中解決方法:
將debug改為release。
進入項目——>屬性里面將C/C++——>代碼生成——>運行庫將/MD或/MDd改為/MT或/MTd再從新編譯一下就可以了。