微信群发工具,纯Python编写~

news2025/7/9 0:04:28

前言

接到了一个需求:现微信有8000+好友,需要给所有好友发送一则一样的消息。网上搜索一番后,发现uiautomation 可以解决该需求,遂有此文。这是第五篇,也是最后一篇。

正如上面所见,这是uiautomition 微信群发最后一篇了。
本文章整合了前面4篇文章,使用pyside2做GUI,交答卷啦!!!
(可以打包成.exe 给到你的小伙伴去使用噢!!!)


知识点📖

知识点链接
微信群发消息 GitHub链接https://github.com/Frica01/Wechat-mass-msg
pyside2文档https://doc.qt.io/qtforpython/

解决问题🐱‍🏍🐱‍🏍

解决问题如下:

  • 群发消息,最多选择9个联系人和群组
  • 打包成 .exe工具,给到有需要的小伙伴使用~

在这里插入图片描述

工具展示

这里暂不演示GUI工具运行效果,感兴趣的小伙伴可以把项目clone下来测试。

工具主页

如下图所示,只需要填写需要发送的文本或文件路径,再选择收件人,最后点击开始发送即可。

在这里插入图片描述

关于页面

在这里,点击Bug反馈开发者王者,会打开你电脑当前默认的浏览器并访问指定的网站。

在这里插入图片描述

代码展示

这里只展示 GUI的代码,因为 uiautomation的代码,在前面的几篇文章中已经介绍过了~

项目结构

WeChat-mass-msg
|-- gui
|	|-- icon
|	|-- make
|	|-- ui
|	|-- win
|-- wechat_operation
|	|-- wx_operation.py
|-- main.py
  • gui & wechat_operation:文件夹
  • icon:GUI工具图标
  • make:打包成 .exe.spec 文件
  • win:GUI窗口
  • wx_opeartion.py:操作微信的.py文件
  • main.py:程序入口

程序入口 main.py

这一段代码用于GUI,设置电脑状态栏和程序左上角的图标
其它的GUI代码就自己去看吧!注意都写得清清楚楚的。

# -*- coding: utf-8 -*-
from ctypes import windll

try:
    myapp_id = 'mycompany.myproduct.subproduct.version'
    windll.shell32.SetCurrentProcessExplicitAppUserModelID(myapp_id)
except ImportError:
    pass

if __name__ == '__main__':
    app = QApplication([])
    # 指定状态栏和程序左上角的图标,需要绝对路径
    app.setWindowIcon(QtGui.QIcon(r'G:\Wechat-mass-msg\gui\icon\icon.ico'))

完整代码

在这里:https://github.com/Frica01/WeChat-mass-msg

后话

如果看不懂代码,那就看注释
see you.🎈🎈

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

web前端期末大作业——网页制作基础大二dw作业——动画漫展学习资料电影模板(6页)

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 文章目录一、网页介绍一…

「MySQL高级篇」MySQL存储引擎

本篇速览 早在MySQL基础篇的学习中,我们就一直看到innodb这个存储引擎,但是好像对于其他的存储引擎也没有去学习和了解,而innodb有何种特点也不得而知,而本篇将从一下四点,带你逐一攻破Ta: 1️⃣首先系统地…

golang 使用 make 创建 map 是否需要指定长度

大家都知道可以使用make方法来创建map类型,对比创建 slice 类型,创建map是否也需要指定len和cap两个参数呢? 如果map要容纳的数据比较多,其实是需要指定len属性的,我们可以从创建map的源码中了解到(本文都…

kubernetes(K8S)学习笔记P5:K8s核心概念2

kubernetes(K8S)学习笔记P4:K8s核心概念2-Helm、持久化存储技术5.Helm5.1Helm 引入5.2Helm 介绍5.3Helm v3 变化5.4安装与仓库配置5.4.1部署 helm 客户端5.4.2配置国内 chart 仓库(helm换源)5.5Helm快速部署5.5.1基本命…

前端面试题记录——vue

目录 前言 一、说一下虚拟DOM? 1.虚拟dom是什么? 2.虚拟dom是怎么产生的? 3.虚拟dom的优点 二、说一下vue-router?有几种模式? 1.vue-router是什么? 2.vue-router有几种模式?区别是什么&#xff1…

Secure Boot什么意思?BIOS中Secure Boot灰色无法更改解决方法详解

在电脑Bios设置中,有一项“Secure Boot”相关设置,很多小伙伴们不知道Secure Boot什么意思,也不知道如何设置。另外,有时候这个Secure Boot是灰色的无法更改,这又要如何解决呢?下面本文就来谈谈Secure Boot…

mybatis-plus使用generator快速生成代码,并手动添加数据库命令

mybatis-plus是mybatis的增强版,可以根据数据库自动生成代码,实现常用的增删改查功能,也可以按照mybatis的配置方式添加数据库命令。 参考地址: generator: 文档 http://baomidou.com/ 代码生成器配置新 | MyBatis-Plus 1、在p…

通过SASRec算法进行基于Transformer的商品推荐

案例简介 (1)方法概述: 本教程包含如下内容: 从原始的数据文件中加载数据,进行训练集和测试集的切分,并对测试集进行负采样。 对数据分batch, 利用用户历史点击记录进行模型训练 结果展示 (2)宏观流程图 2.准备工作 (1) 对应库的安装(以下是运行环境) tqdm==4.51.0 nump…

Java#25(常见算法: 查找算法)

目录 一.基本查找/顺序查找 从0索引开始挨个往后找 二.折半查找/二分查找 条件: 数组中的数据必须是有序的 核心逻辑: 每次排查一半的查找范围 优势: 提高查找效率 三.分块查找 分块查找的原则1: 前一块中的最大数据,小于后一块中所有的数据(块内无序,块间有序) 分块查…

1000套web前端期末大作业 HTML+CSS+JavaScript网页设计实例 企业网站制作【建议收藏】

一、1000套HTML期末学生结课大作业作品(HTMLCSSJS) 这8年来做了1000多套(HTMLCSSJS)网页设计的学生期末大作业,都是给学生定制的都符合学校或者学生考试期末作业的水平,都是divcss框架原创代码写的,有的有js,有的视频音乐flash的…

谷粒学苑_第十天

第十天 视频删除 后端 相关sdk在阿里云视频点播文档的服务端SDK–>Java SDK–>媒资管理–>删除视频 复制前面的InitObject到utils里 删除的方法 DeleteMapping("{id}")public R removeAliyunVideo(PathVariable String id){try{DefaultAcsClient defau…

parallelStream/ForkJoinPool 详解

parallelStream parallelStream是一种并行流, 意为处理任务时并行处理。 parallelStream底层使用的是ForkJoinPool。ForkJoinPool是一种工作窃取算法线程池,和分治法的概念一致,可以充分利用多 CPU 的优势,把一个任务拆分成多个"小任务…

云计算盛宴即将揭幕,re:Invent创新方向提前剧透

作为数字时代广大企业不可或缺的IT基础设施,云计算已经当仁不让地成为了数字经济的技术底座,同时也成为了当前全球备受关注和最热门的产业之一。作为云计算技术的开创者和领导者,亚马逊云科技自从2006年推出全球首个云计算服务以来&#xff0…

OpenCV图像特征提取学习三,LBP图像特征检测算法

一、LBP特征的概述 LBP指局部二值模式,英文全称:Local Binary Pattern,是一种用来描述图像局部特征的,LBP特征具有灰度不变性和旋转不变性等显著优点。同时是一种描述图像特征像素点与各个像素点之间的灰度关系的局部特征的非参数…

NestJS学习:控制器

参考 控制器 控制器负责处理传入的请求和向客户端返回响应。 控制器的目的是接收应用的特定请求。路由机制控制哪个控制器接收哪些请求。通常,每个控制器有多个路由,不同的路由可以执行不同的操作。 控制器 上一篇文章已经介绍了路由的创建&#xff0c…

Redis缓存何以一枝独秀?以及热门面试题中Redis的核心特性

​Redis的各种数据类型 作为缓存组件,Redis的数据结构整体而言就是key-value类型的键值对,但是Redis对于value类型的支持还是比较丰富的,提供了5种不同的数据结构,可以满足大部分场景的使用诉求。 ​对几种类型的结构特点与使用注…

3天3定制大屏,反向PUA

摘要 本次分享一段无讨价还价余地的单人3天定制化大屏全过程(强调说拖拽屏的请绕道,和你想的不一样),要动效、要地图、要流光。天坑的心理博弈到最终解决的过程及技术思路。 前因 没啥征兆突然接到说,要在下周完成2个大屏的定制开发,起初没提…

C51 - 定时器

Contents1> 概述(STC89C51RC/RD)2> 作用: CPU的 "闹钟"3> 工作原理 (16位计数器)[TL0 TH0]: 数据寄存器TF: 定时器<溢出>标志位4> 程序设计1> 概述(STC89C51RC/RD) STC89C51RC/RD 定时器数量: 3个; T0模式:工作模式 模式0: 13位计数器; 模式1: …

理解循环神经网络

理解循环神经网络 之前有一篇文章已经初步介绍过RNN的原理(https://forchenxi.github.io/2021/04/23/nlp-rnn/)&#xff0c;里面其实已经介绍的比较清晰易懂了&#xff0c;这篇文章再来回顾和拓展一下. 首先要知道RNN是一个带有内部环的神经网络&#xff0c;上面的这篇文章中…

港科夜闻|香港科大(广州)校长倪明选教授出席江门双碳实验室第一届理事会一次会议...

关注并星标每周阅读港科夜闻建立新视野 开启新思维1、香港科大(广州)校长倪明选教授出席江门双碳实验室第一届理事会一次会议。11月21日下午&#xff0c;江门双碳实验室召开第一届理事会一次会议&#xff0c;审议通过有关文件&#xff0c;完善实验室组织架构&#xff0c;谋划下…