定时关机程序

定时关机程序

定时关机程序

前段时间我出去打了一份工,人生中第一次上班,也体会到了社会,不像学校那样温情脉脉。我当时的同事,操着卖白粉的心赚着卖白菜的钱,早出晚归,即使熬夜到2点过,也没有加班费。我很难过,自己的力量实在渺小。我知道,在马克思的年代,对于劳工的剥削更加残酷,但是还是对于无视《劳动法》的人表示愤怒。他们对这种事都习以为常了。有些人对于接受对社会强迫低头当作成熟,虽然不知道十年后的我会怎么想,但是现在我不接受。

如果天空总是黑暗的,那就摸黑生存;如果发出声音是危险的,那就保持沉默;如果自觉无力发光,那就蜷伏于墙角。 但不要习惯了黑暗就为黑暗辩护;也不要为自己的苟且而得意;不要嘲讽那些比自己更勇敢的人们。

我们可以卑微如尘土,但不可扭曲如蛆虫。


至少我可以写一个关机程序,一旦过了下班时间就自行关机。希望那个总问候我是不是傻逼的年轻人、总是沉默内向的胡某等等,可以得到宁静的安眠之夜。

如果你不了解SDK编程,请阅读这一篇。

点击后,写入注册表自启动。于是在开机后就会自动运行。

每隔1小时,检测系统时间是否是22:00-5:00,如果是就执行关机。

关机时候,绘制一个程序崩溃的消息框,“  windows已遇到关键问题,将在一分钟后自动重启。请立即保存您的工作。”

然后会在3秒后关机。并不重启,迷惑对方。如果显示“您的电脑需要睡觉了,将在一分钟后自动进入睡眠”,那么还有疑问吗,肯定是中病毒了啊。

关机函数

搜索到关机的函数,改一改,添加主函数,主函数调用关机函数,添加函数原型。更改后源码

g++ shutdown.cpp  -static -o shutdown

成功编译,在虚拟机里测试运行shutdown.exe,立即关机。

将关机与开机自启结合起来。源码3。

在编译成功后在虚拟机测试,记得快照恢复哦,不然删除本程序还挺麻烦的。

获取系统时间函数

getlocaltime


显示了时间是12点23

定时器函数

由于需要每隔一段时间检测时间是否到了下班时间,如果检测太频繁,容易被发现,而且也没有必要。

setTimer(handle,定时器id,间隔时间,回调函数)

括号里就是要传的参数。回调函数是什么呢?就是调用的函数,如果定时1秒钟,那么每隔一秒,我们就检测时间是不是晚上10点


上图,用判断语句,成功判断了现在的时间。就可以把 printf 改成调用关机函数。源码4

测试后,虚拟机成功判断了现在的时间,并关机。

setTimer()函数会每隔30分钟再判断一次现在时间。如果时间不对,则调用Sleep()函数,将暂停运行30分钟。

消息框函数

messageBox在以前的文章里说过了,码代码好累。。。已经不想再详细展开了,等有空再说吧,,


#pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup")

源代码5加上这一行就没有黑色控制台窗口了。测试,点击确定后,会立马重启。

组合一下,添加自启动功能,更改关机时间为22点。源码6

免杀

虚拟机安装360,开防火墙。结果相安无事没有被杀掉(一脸懵逼)。呃,好累啊下回在讲免杀吧。