如何使用程序控制微信发送消息

简介

使用杨中科老师的nuget包NetAutoGUI,控制微信给指定用户发送消息,如果想下面视频一样使用此功能用来轰炸朋友,可以直接跳到最后一节,或者直接下载我的打包好的程序集

【免费】控制微信发送消息的程序资源-CSDN文库

微信轰炸

安装nuget包

我们使用杨中科老师封装好的nuget包

NuGet Gallery | NetAutoGUI.Windows 1.0.11

如何使用程序控制微信发送消息_第1张图片首先我们创建一个控制台项目,然后右键项目,选择属性,将目标os设置为windows

如何使用程序控制微信发送消息_第2张图片

然后通过下面命令nuget安装nuget包

NuGet\Install-Package NetAutoGUI.Windows -Version 1.0.11

或者直接在nuget包管理器中搜索NetAutoGUI.Windows

如何使用程序控制微信发送消息_第3张图片

注意如果没有设置好面向操作系统为windows则会报下面异常

如何使用程序控制微信发送消息_第4张图片

如果使用的工具是Rider,同理右键项目=>设置 选择Target framework为windows版本

如何使用程序控制微信发送消息_第5张图片

基于截图对页面就行模糊匹配

首先将右下角的微信图标截取下来

如何使用程序控制微信发送消息_第6张图片

截取下来的图标,保存到当前项目下,注意要设置为复制到输出目录,不然启动项目的时候会找不到图片报错

如何使用程序控制微信发送消息_第7张图片

代码解读

查看当前有没有title为微信的应用在任务栏中

Window? w = GUI.Application.FindWindowByTitle("微信");

如果w为null,则看系统托盘有没有微信图标wx_icon(也就是刚刚截图的图标),有的话通过GUI.Mouse来双击打开

        if (w == null)
        {
            //在屏幕上寻找此元素
            var rectWiIcon = GUI.Screenshot.LocateOnScreen("wx_icon.png");
            if (rectWiIcon == null)
            {
                Console.WriteLine("微信托盘图标没找到!");
                return;
            }
            else
            {
                //通过找到图标的坐标点击图标打开微信
                GUI.Mouse.Click(rectWiIcon.X,rectWiIcon.Y);
                //然后重新获取程序
                w = GUI.Application.WaitForWindowByTitle("微信");
            }
        }

 如果w不为null,那么直接通过w.Activate()打开微信窗口。

        else
        {
            w.Activate();
        }

同理,我们将微信搜索图标也截取下来

如何使用程序控制微信发送消息_第8张图片

 然后通过下面代码,找到该图标,搜索微信团队,再模拟按键敲击回车发送消息过去

w.WaitAndClick("shousuo.png",0.9);
GUI.Keyboard.Write("微信团队");
//输入文字后等待个500毫秒再按回车,不然微信反应不过来
Thread.Sleep(500);
GUI.Keyboard.Press(VirtualKeyCode.RETURN);

Thread.Sleep(500);
GUI.Keyboard.Write("发送的内容");
//模拟回车发送消息
GUI.Keyboard.Press(VirtualKeyCode.RETURN);

整体代码如下 

class Program
{
    public static void Main(string[] args)
    {
        Window? w = GUI.Application.FindWindowByTitle("微信");
        if (w == null)
        {
            //在屏幕上寻找此元素
            var rectWiIcon = GUI.Screenshot.LocateOnScreen("wx_icon.png", 0.6);
            if (rectWiIcon == null)
            {
                Console.WriteLine("微信托盘图标没找到!");
                return;
            }
            else
            {
                //通过找到图标的坐标点击图标打开微信
                GUI.Mouse.Click(rectWiIcon.X, rectWiIcon.Y);
                //然后重新获取程序
                w = GUI.Application.WaitForWindowByTitle("微信");
            }
        }
        else
        {
            w.Activate();
        }
        
        w.WaitAndClick("shousuo.png",0.9);
        GUI.Keyboard.Write("微信团队");
        //输入文字后等待个500毫秒再按回车,不然微信反应不过来
        Thread.Sleep(500);
        GUI.Keyboard.Press(VirtualKeyCode.RETURN);
        
        Thread.Sleep(500);
        GUI.Keyboard.Write("发送的内容");
        //模拟回车发送消息
        GUI.Keyboard.Press(VirtualKeyCode.RETURN);
    }
}

 恶搞轰炸

学废了,接下来我们来干点坏事。经过测试,如果用到截屏对窗口进行匹配的话,有可能会出现匹配出错的情况,并且搜索需要等待微信反应时间,我们将代码简化一下。直接实现定位到好基友的消息页面,然后跑程序轰炸他

class Program
{
    public static void Main(string[] args)
    {
        Console.WriteLine("请输入你要轰炸的次数!然后按下回车");
        int count = Convert.ToInt32(Console.ReadLine());

        Console.WriteLine("请输入你要发送的内容!然后按下回车");
        string path = Console.ReadLine();

        Window? w = GUI.Application.FindWindowByTitle("微信");

        if (w == null)
        {
            //在屏幕上寻找此元素

            Console.WriteLine("先打开微信");
            return;
        }
        w.Activate();

        for (int i = 0; i < count; i++)
        {
            GUI.Keyboard.Write(path);
            GUI.Keyboard.KeyDown(VirtualKeyCode.RETURN);
        }
    }
}

 效果演示

微信轰炸

如果本地没有c#的开发环境,也可以下载我打包好的程序集

【免费】控制微信发送消息的程序资源-CSDN文库

解压后双击.exe文件执行项目

然后在弹窗中输入次数和内容就会自动执行程序了

如何使用程序控制微信发送消息_第9张图片

你可能感兴趣的:(微信,c#)