目录
前言
一、整体思路
二、实现关机
命令行
库函数system()
三、代码实现
一点小设置
“我是猪”代码实现。
strcmp函数
四、将.exe文件取出来
五、准备一个ico图片
六、将.exe包装成英雄联盟
晚安
这阵子非常滴忙呀,没怎么在课下敲代码,罪恶感拉满♂️我是罪人不过这两天野接触到一个蛮开阔眼界的小程序,将其“稍微”更改一下就变成整蛊程序。,非常非常非常适合坑室友(促进感情),上手度非常的低,今天无偿教给大家。下面是实机演示效果。
1.将电脑设置为60s自动关闭。
2. 如果输入字符串“我是猪”停止关机这一操作(当然,输入什么样的字符串还是取决于与室友之间的感情❤️)。
3.把C语言程序需要的文件导出。
4.给它换皮,更改名称和应用图标。
5.发给室友,让室友为你鼓掌
在接下来的文章中我会一步步仔仔细细滴讲解,不过小伙伴偷懒的话也可以私聊我,我直接把文件发给你,一条龙服务。
最后保证大家能将小程序发送给室友,进一步增强与室友的线下沟通。
那么开始吧。
事实上,说成关机不是很准确,关机大家都会。
我们的目的其实是将室友的电脑在神不知鬼不觉的情况下关机。
在这里我们可以通过Windows系统的命令行操作来进行关机,按住Windows+r然后输入cmd,点击确认。
就会弹出来下面这个窗口。
这就是命令行窗口,然后我们输入
shutdown -s
电脑就会开始关机,进行注销。这里双非程序猿觉得这样对室友太残忍了,加了一个延时关机的指令"-t"。
shutdown -s -t 60
后面的数字60就是延时60s后关机,给室友一个手足无措的时间咩哈哈哈。输入的效果就是下面这样的:
哦吼吼,有点样子了吧。这里双非程序猿就差点就吧电脑关机了,吓死,不要慌,在下一行输入:
shutdown -a
就可以停止电脑注销。
在这里已经停止了。
咱总不可能让室友自己输入这串指令吧,双非程序猿试过,真挺难的。我们可以用C语言中的库函数system()帮助我们实现神不知鬼不觉的关机。
C语言程序自带库函数中有这么一个函数,可以将字符串直接传送给系统,这实质上就和上面的命令行窗口做的是一样的事。
这里我们需要先了解一下system函数。我推荐使用下面这个网站进行学习。
http://cplusplus.com/
打开之后会是下面这样的界面
这是一个全英文的界面,这里双非程序猿不推荐使用插件整页翻译,因为这样作可能会把“int void”等翻译掉,反而影响我们的查阅。其他的看不懂还是可以结合百度翻译来看滴,这样慢慢的我们也能直接看到英文文献了(这个能力对程序猿还是非常重要滴)加油叭。
在上面的search可以搜索system函数
我们可以看到如下图,这是对函数的讨论以及例子。
这个函数确实是要输入一个字符串,并且它还会返回一个整数。下面那一段双非程序猿英语不行买看懂,只好借助百度君的帮助了(希望大家英语能比我更厉害一大截*^_^*)。
嗯,虽然语句不是很通顺,不过起码看出来system确实可以通过字符串执行系统命令。
那么system这个函数基本掌握了。咱们不能忘记初心,将它与命令行结合就可以将室友的电脑关机了,哈哈哈。
在开始敲代码前,需要进行一些小小的设置
将这个Debug改成如下图的Release。
这是为了待会可以将.exe文件从Release文件中提取出来。
#include
#include
int main()
{
char s[20] = { 0 };
printf("请输入\"我是猪\",否则你的电脑将在一分钟内关机咩哈哈哈哈\n");
system("shutdown -s -t 60");//进行关机指令
while (1)//进行死循环,直到输入正确或者关机才会结束
{
scanf("%s", s);
if (strcmp(s, "我是猪") == 0)//正是这一个函数用到了string.h这一个头文件
{
system("shutdown -a");//停止关机指令
break;
}
}
return 0;
}
值得一提的是,我在写这个代码的时候,忘记写scanf()这一个命令了,你们可以想象一下,这样会有什么样的结果。我当时相当绝望,匆忙给博客保存,但是图片没成功保存。你们看到的图都是我重新截的。
回到正题,strcmp这个函数还是要讲一下的。
在这个程序里,我们需要将时s[]字符串与“我是猪”这两个字符串进行比较。
if(s[]=="我是猪")
要注意的是,这样的写比较其实是错误的。两个字符串的比较一般都要用到strcmp函数。
接下来我们认识一下这个函数。
从http://cplusplus.com/
得出:strcmp的使用需要传入两个字符串,并且它会返回一个整数,他会对传进去的字符串进行比较。
从上图表格中又可得知,返回的整数=两个字符串第一个不匹配的字母之间的差值(str1-str2)
因此当返回值等于0的时候,这两个字符串相等。代码实现如下。
if(strcmp(s,"我是猪")==0)
还是不要忘记我们的初衷哦✌,接下来就是一系列的包装了。
打开文件所在位置,找到Release文件
打开找到.exe文件,这就是我们要用的文件,点开就直接会运行上面的代码。
这时候我们可以在室友洗澡的时候吧这个.exe文件,和一个.ico格式的图片(用来当做快捷方式的图标)发送给室友。
先在百度图库里找到一个图片(作为应用图标)并下载
然后在这里推荐一个免费网站http://www.ico51.cn/,可以把你的jpg等等格式的图片转换成ico格式的图片(应用图标需要这个格式)
选择文件然后再生成即可。
在桌面创建一个快捷方式
然后浏览到.exe文件的位置,这样一个快捷方式就建立好了
然后右键点击属性
点击下方更改图标
然后点击上方的浏览,浏览到你的ico图片就可以更换了。
成功!
最后在你室友回来之前逃离即可。
现在是凌晨0点过十八分钟,呜呜,比说好的日更还是超过了十八分钟。家人们要好好睡觉哦,晚安。
音柱好帅,但我对蝴蝶忍一心一意!