使用C语言编写一个强制关机程序
一、项目介绍
C语言实现一个简单的"流氓软件",一个可以强制关机恶作剧关机程序,输入指定指令可以解除
二、运行截图
然后当你输入“n”才可以解锁关机。
三、完整源码
#include <stdlib.h> #include <stdio.h> #include <string.h> #include <time.h> #include <unistd.h> #include <conio.h> int main() { char input[10]; printf("警告!您的计算机将在一分钟后关机,请保存好您的工作并退出所有程序!"); printf("是否确认关机?(y/n): "); scanf("%s", input); while (1) { if (strcmp(input, "y") == 0 || strcmp(input, "Y") == 0) { // 记录用户选择到日志文件 FILE *logFile = fopen("D:/a1.txt", "a"); if (logFile != NULL) { time_t currentTime; struct tm *localTime; time(¤tTime); localTime = localtime(¤tTime); fprintf(logFile, "%04d-%02d-%02d %02d:%02d:%02d - 用户选择了关机\n", localTime->tm_year + 1900, localTime->tm_mon + 1, localTime->tm_mday, localTime->tm_hour, localTime->tm_min, localTime->tm_sec); fclose(logFile); } // 执行滑动关机操作 system("shutdown /r /t 60"); // 显示倒计时 for (int i = 60; i >= 0; i--) { printf("\r倒计时:%d秒", i); fflush(stdout); sleep(1); if (_kbhit()) { // 检测按键 char key = _getch(); // 获取按键值 if (key == 's' || key == 'S') { // 如果按下了's'或'S'键 // 记录用户选择到日志文件 FILE *logFile = fopen("D:/a1.txt", "a"); if (logFile != NULL) { time_t currentTime; struct tm *localTime; time(¤tTime); localTime = localtime(¤tTime); fprintf(logFile, "%04d-%02d-%02d %02d:%02d:%02d - 用户选择了关机并取消关机\n", localTime->tm_year + 1900, localTime->tm_mon + 1, localTime->tm_mday, localTime->tm_hour, localTime->tm_min, localTime->tm_sec); fclose(logFile); } // 执行取消关机操作 system("shutdown /a"); return 0; } } } return 0; } else if (strcmp(input, "n") == 0 || strcmp(input, "N") == 0) { printf("取消关机操作。"); return 0; } else { printf("输入错误,请重新输入"); printf("是否确认关机?(y/n): "); scanf("%s", input); } } return 0; }
程序首先显示警告信息,并询问用户是否确认关机。如果用户输入"y"或"Y",则程序会记录用户的选择到日志文件(D:/a1.txt),然后执行关机操作,并在倒计时60秒后关闭计算机。如果用户输入"n"或"N",则程序会取消关机操作。如果用户输入其他字符,则程序会提示输入错误并重新询问用户是否确认关机。
到此这篇关于使用C语言编写一个强制关机程序的文章就介绍到这了,更多相关C语言关机内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
2022最新使用VSCode编译运行C++的过程及会遇到的两个问题
这篇文章主要介绍了2022最新使用VSCode编译运行C++的过程及会遇到的两个问题,这里需要注意把刚才解压的地址加上\bin添加进去,比如我的:D:\aaakkk\cpp\mingw64\bin,然后点确定,注意一定要确保它被保存了,感兴趣的朋友跟随小编一起看看吧2022-09-09centos 7 vscode cmake 编译c++工程的教程详解
这篇文章给大家介绍了centos 7 使用vscode+cmake配置简单c++项目的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧2020-05-05Qt图形图像开发之曲线图表模块QChart库坐标轴和数据不对应、密集的散点图无法显示问题解决方法
这篇文章主要介绍了Qt图形图像开发之曲线图表模块QChart库坐标轴和数据不对应、密集的散点图无法显示问题解决方法,需要的朋友可以参考下2020-03-03
最新评论