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

简介

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

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

微信轰炸

安装nuget包

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

NuGet Gallery | NetAutoGUI.Windows 1.0.11

🍀首先我们创建一个控制台项目,然后右键项目,选择属性,将目标os设置为windows

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

NuGet\Install-Package NetAutoGUI.Windows -Version 1.0.11

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

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

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

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

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

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

代码解读

🍀查看当前有没有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();
        }

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

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

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文件执行项目

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/327042.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯备赛 | 洛谷做题打卡day5

蓝桥杯备赛 | 洛谷做题打卡day5 图论起航&#xff0c;一起来看看深&#xff08;广&#xff09;度优先吧 ~ 文章目录 蓝桥杯备赛 | 洛谷做题打卡day5图论起航&#xff0c;一起来看看深&#xff08;广&#xff09;度优先吧 ~【深基18.例3】查找文献题目描述 输入格式输出格式样例…

《如何制作类mnist的金融数据集》——1.数据集制作思路

1&#xff0e;数据集制作思路&#xff08;生成用于拟合金融趋势图像的分段线性函数&#xff09; 那么如何去制作这样的一个类minist的金融趋势曲线数据集呢&#xff1f; 还是如上图所示&#xff0c;为了使类别平均分布&#xff0c;因此可以选取三种“buy”的曲线、三种“sell”…

Web前端 ---- 【Vue3】computed计算属性和watch侦听属性(侦听被ref和reactive包裹的数据)

目录 前言 computed watch watch侦听ref数据 ref简单数据类型 ref复杂数据类型 watch侦听reactive数据 前言 本文介绍在vue3中的computed计算属性和watch侦听属性。介绍watch如何侦听被ref和reactive包裹的数据 computed 在vue3中&#xff0c;计算属性computed也是组合式…

C语言天花板——指针(经典题目)

指针我们已经学习的差不多了&#xff0c;今天我来给大家分享几个经典的题目&#xff0c;来让我们相互学习&#x1f3ce;️&#x1f3ce;️&#x1f3ce;️ int main() {int a[4] { 1, 2, 3, 4 };int* ptr1 (int*)(&a 1);int* ptr2 (int*)((int)a 1);printf("%x,%…

Java重修第六天—面向对象3

通过学习本篇文章可以掌握如下知识 1、多态&#xff1b; 2、抽象类&#xff1b; 3、接口。 之前已经学过了继承&#xff0c;static等基础知识&#xff0c;这篇文章我们就开始深入了解面向对象多态、抽象类和接口的学习。 多态 多态是在继承/实现情况下的一种现象&#xf…

随笔03 笔记整理

图源&#xff1a;文心一言 关于我的考研与信息安全类博文整理~&#x1f95d;&#x1f95d; 第1版&#xff1a;整理考研类博文~&#x1f9e9;&#x1f9e9; 第2版&#xff1a;提前列出博文链接&#xff0c;以便小伙伴查阅~&#x1f9e9;&#x1f9e9; 第3版&#xff1a;整理We…

学习记录-自动驾驶与机器人中的SLAM技术

以下所有内容均为高翔大神所注的《自动驾驶与机器人中的SLAM技术》中的内容 融合导航 1. EKF和优化的关系 2. 组合导航eskf中的预测部分&#xff0c;主要是F矩阵的构建 template <typename S> bool ESKF<S>::Predict(const IMU& imu) {assert(imu.timestamp…

基于杂交PSO算法的风光储微网日前优化调度(MATLAB实现)

微网中包含&#xff1a;风电、光伏、储能、微型燃气轮机&#xff0c;以最小化电网购电成本、光伏风机的维护成本、蓄电池充放电维护成本、燃气轮机运行成本及污染气体治理成本为目标&#xff0c;综合考虑&#xff1a;功率平衡约束、燃气轮机爬坡约束、电网交换功率约束、储能装…

Elasticsearch_8.11.4_kibana_8.11.4_metricbeat_8.11.4安装及本地部署_ELK日志部署

文章目录 Elasticsearch_8.11.4_kibana_8.11.4_metricbeat_8.11.4安装及本地部署_ELK日志部署分布式引擎Elasticsearch_8.11.4安装及本地部署系统环境要求1 Windows 安装 Elasticsearch下载完成后进行解压,进入 bin 目录,找到elasticsearch.bat脚本文件执行一键启动.启动都选允…

【Python学习】Python学习15-模块

目录 【Python学习】Python学习15-模块 前言创建语法引入模块from…import 语句from…import* 语句搜索路径PYTHONPATH 变量-*- coding: UTF-8 -*-导入模块现在可以调用模块里包含的函数了PYTHONPATH 变量命名空间和作用域dir()函数globals() 和 locals() 函数reload() 函数Py…

ROS2学习笔记一:安装及测试

目录 前言 1 ROS2安装与卸载 1.1 安装虚拟机 1.2 ROS2 humble安装 2 ROS2测试 2.1 topic测试 2.2 小海龟测试 2.3 RQT可视化 2.4 占用空间 前言 ROS2的前身是ROS&#xff0c;ROS即机器人操作系统&#xff08;Robot Operating System&#xff09;,ROS为了“提高机器人…

原生js实现拖拽效果

<!DOCTYPE html> <html> <head> <style> #mydiv { width: 200px; height: 200px; background-color: red; position: absolute; cursor: move; } </style> | </head> <body> <div id"mydiv">拖拽我…

基于java web的机票管理系统设计与实现设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

机器学习扩散模型简介

一、说明 扩散模型的迅速崛起是过去几年机器学习领域最大的发展之一。在这本易于理解的指南中了解您需要了解的有关扩散模型的所有信息。 扩散模型是生成模型&#xff0c;在过去几年中越来越受欢迎&#xff0c;这是有充分理由的。仅在 2020 年代发布的几篇开创性论文就向世界…

socket.io分房间交流

基本详情看这里 Socket.IO 是一个库,可以在客户端和服务器之间实现 低延迟, 双向 和 基于事件的 通信. 效果展示 安装依赖 // 后端插件安装 npm i socket.io -S // 前端插件安装 npm i socket.io-client -S 前端搭建及逻辑 <script setup> import { ref, onMounted…

机器学习 | 卷积神经网络

机器学习 | 卷积神经网络 实验目的 采用任意一种课程中介绍过的或者其它卷积神经网络模型&#xff08;例如LeNet-5、AlexNet等&#xff09;用于解决某种媒体类型的模式识别问题。 实验内容 卷积神经网络可以基于现有框架如TensorFlow、Pytorch或者Mindspore等构建&#xff…

Vue2脚手架配置教程IDEA配置VUE

5.12.3 Vue Cli 文档地址: https://cli.vuejs.org/zh/ IDEA 打开项目&#xff0c;运行项目

React 原理

函数式编程 纯函数 reducer 必须是一个纯函数&#xff0c;即没有副作用的函数&#xff0c;不修改输入值&#xff0c;相同的输入一定会有相同的输出不可变值 state 必须是不可变值&#xff0c;否则在 shouldComponentUpdate 中无法拿到更新前的值&#xff0c;无法做性能优化操作…

Linux网络服务部署yum仓库

目录 一、网络文件 1.1.存储类型 1.2.FTP 文件传输协议 1.3.传输模式 二、内网搭建yum仓库 一、网络文件 1.1.存储类型 直连式存储&#xff1a;Direct-Attached Storage&#xff0c;简称DAS 存储区域网络&#xff1a;Storage Area Network&#xff0c;简称SAN&#xff0…

服务拆分及远程调用

分布式架构都离不开服务的拆分&#xff0c;微服务也是一样。 1.微服务拆分 不同微服务&#xff0c;不要重复开发相同业务 微服务数据独立&#xff0c;不要访问其它微服务的数据库 微服务可以将自己的业务暴露为接口&#xff0c;供其它微服务调用 2.远程调用 以前时&#xf…