30分钟实现Windows微信自动化:wxauto完整上手教程
【免费下载链接】wxautoWindows版本微信客户端(非网页版)自动化,可实现简单的发送、接收微信消息,简单微信机器人项目地址: https://gitcode.com/gh_mirrors/wx/wxauto
你是否有过这样的时刻:作为群主,每天要在好几个群里手动@全体成员;作为运营,一边吃饭一边盯着手机给新客户回"收到";作为重度用户,想把聊天记录里朋友发来的资料一张张存下来……这些重复动作占据了每天大量时间,而你其实完全可以把它们交给代码。
wxauto 就是为此而生的开源工具,它直接操控 Windows 微信客户端(非网页版),用几十行 Python 就能实现消息发送、接收、自动回复和简单的微信机器人,不需要任何网页版接口,也不碰手机。本文会用 30 分钟带你从零跑通第一个示例,再逐步拆解几个高频场景,让你快速掌握这套微信自动化技能。
一、先看清它能帮你做什么
在动手之前,先用一张表让你对 wxauto 的能力有个整体认知:
| 能力 | 解决什么问题 | 对应核心方法 |
|---|---|---|
| 发送文本/文件 | 批量通知、周报分发不用再手动点 | SendMsg / SendFiles |
| 接收与存档消息 | 聊天记录备份、素材收集自动化 | GetAllMessage / GetNewMessage |
| 自动回复机器人 | 常见问题秒回,人只需要处理棘手的 | AddListenChat + 轮询 |
| 好友管理 | 好友申请一键通过并打备注标签 | GetNewFriends / AddNewFriend |
| 群聊运营 | 定时@全员、拉人建群、导出成员名单 | AtAll / GetGroupMembers |
| 自动登录 | 扫码登录、获取二维码流程脚本化 | LoginWnd |
一句话总结:凡是你每天在微信里重复操作的"体力活",都值得用 wxauto 写一遍试试。
二、三步完成环境配置
2.1 核对系统与版本
wxauto 对环境有硬性要求,先确认你满足下面三点:
- 操作系统:Windows 10/11 或 Server 2016 及以上
- 微信客户端:3.9.X 系列版本(工具按此版本适配,装错版本可能定位不到控件)
- Python:3.9 及以上
2.2 获取代码并安装
把仓库克隆到本地并安装依赖,两条命令搞定:
git clone https://gitcode.com/gh_mirrors/wx/wxauto cd wxauto pip install .2.3 提前登录微信
这一步最容易被忽略:先把微信客户端打开并登录成功,再运行你的 Python 脚本。wxauto 是通过 UIAutomation 技术去"读取和操作"已打开窗口里的控件,微信没登录,它就无从下手。⚠️ 如果遇到"定位不到控件"的报错,九成是微信版本或登录状态出了问题。
三、最快跑通首个示例
先来一个最小可运行版本,让你确认整条链路是通的:
from wxauto import WeChat # 初始化,连接当前已登录的微信窗口 wx = WeChat() # 给"文件传输助手"发一条消息 wx.SendMsg("你好,这是 wxauto 发出的第一条消息", who="文件传输助手") # 读取当前聊天窗口里的消息 msgs = wx.GetAllMessage() for msg in msgs: print(f"发送人: {msg.sender} | 内容: {msg.content} | 类型: {msg.type}")运行后你会看到终端打印出初始化成功提示,随后"文件传输助手"里多出一条新消息,控制台则输出该窗口的历史消息清单。到这里,你的第一次微信自动化已经成功——发送、读取这两个最基础的能力已经摸通了。✅
四、高频场景逐一拆解
4.1 场景一:给指定联系人批量发通知
运营或行政经常要挨个私聊发通知,用 wxauto 可以循环遍历联系人名单,把通知一条条发出去,还能顺带发文件。
from wxauto import WeChat wx = WeChat() contacts = ["王芳", "李强", "赵敏"] notice = "各位好,本周五下午 3 点召开项目周会,请准时参加。" for name in contacts: wx.SendMsg(notice, who=name) # 循环发文本 wx.SendFiles([r"D:\资料\周会材料.pdf"], who=name) # 顺手发附件 print(f"已发送给 {name}")效果说明:程序会依次搜索并打开每位联系人的聊天窗口、粘贴消息、回车发送,再上传附件,全程不需要你碰鼠标。需要注意who参数建议使用完整匹配的名称,微信会优先按备注名查找。
4.2 场景二:打造一个自动回复小机器人
客服、社群运营最常见的需求是"收到提问先自动回应"。wxauto 支持把某个聊天加入监听,配合轮询读取新消息,就能实现简单的机器人逻辑。
from wxauto import WeChat import time wx = WeChat() # 把"产品咨询群"加入监听 wx.AddListenChat("产品咨询群") # 持续轮询新消息 while True: msgs = wx.GetListenMessage() # 获取所有监听窗口的新消息 for chat, msg_list in msgs.items(): for msg in msg_list: print(f"[{chat}] {msg.sender}: {msg.content}") # 命中关键词就自动回复 if "价格" in msg.content: msg.quote("价格已私聊您,请留意查收~") time.sleep(2) # 每 2 秒检查一次效果说明:脚本会每隔 2 秒检查监听窗口是否有新消息,一旦出现包含"价格"的内容,就自动引用并回复一条预设话术。你也可以把回复逻辑换成查数据库、调接口,一个简易的微信客服机器人就这么搭起来了。不再需要回复时,调用wx.RemoveListenChat("产品咨询群")即可停止监听。
4.3 场景三:好友申请自动审批
做活动的几天里好友申请会暴涨,逐个点同意、改备注、打标签很折磨人。这段代码可以把审批流程完全自动化:
from wxauto import WeChat wx = WeChat() # 拉取待处理的好友申请 newfriends = wx.GetNewFriends() tags = ["活动客户", "意向用户"] for friend in newfriends: remark = f"活动_{friend.name}" friend.Accept(remark=remark, tags=tags) # 一键通过并设置备注、标签 print(f"已通过:{friend.name}")效果说明:运行后,所有新的好友申请都会被自动通过,且每个好友自动打上备注前缀和标签,方便后续分组运营。反向的主动加好友也有对应方法:wx.AddNewFriend(keywords="微信号或手机号", addmsg="你好,我是...", remark="客户A", tags=["渠道"])。
4.4 场景四:群聊运营三件套
群主们最常用的三个操作——@全员、拉成员建群、导出群成员名单,wxauto 都封装好了:
from wxauto import WeChat import time wx = WeChat() # 1. 在群里 @所有人 并附上通知 wx.AtAll("例会 10 分钟后开始,请入会", who="部门大群") # 2. 从"王芳"的窗口拉"李强"进来,形成群聊 wx.AddGroupMembers(group="王芳", members=["李强"]) time.sleep(3) # 等群创建完成 wx.ManageGroup(name="临时项目组") # 顺手改个群名 # 3. 先进入群聊窗口,再导出成员名单 wx.ChatWith("临时项目组") members = wx.GetGroupMembers() print("群成员:", members)效果说明:第一个调用会在群里发送@所有人的消息;第二个调用基于已有联系人创建群聊并改名;最后一段代码则把群成员名单打印出来,方便你做数据统计或群发。注意创建群聊后最好sleep几秒,给微信客户端留出响应时间。
4.5 场景五:聊天记录自动归档
想把某个窗口的图片、文件、语音都自动保存下来?GetAllMessage支持按需下载:
from wxauto import WeChat wx = WeChat() wx.ChatWith("设计对接群") # 拉取当前窗口消息,并自动保存图片与文件 msgs = wx.GetAllMessage(savepic=True, savefile=True) for msg in msgs: if msg.type in ("image", "file"): print("已保存素材:", msg.content) # 历史记录太长时,往上翻加载更多 loaded = wx.LoadMoreMessage() print("是否加载到更早消息:", loaded)效果说明:开启savepic和savefile后,聊天窗口里的图片与文件会随着消息读取被自动下载到本地,配合LoadMoreMessage可以一路回溯更早的聊天记录,适合做素材库沉淀或备份。
五、进阶玩法:多窗口与自动登录
如果日常需要在多台设备、多个微信账号之间切换,可以借助LoginWnd把"启动客户端 → 弹出登录窗口 → 展示二维码"这串动作也脚本化:
from wxauto import LoginWnd wxpath = "D:/WeChat/WeChat.exe" # 微信客户端实际路径 loginwnd = LoginWnd(wxpath) loginwnd.login() # 拉起微信并显示登录窗口 qrcode_path = loginwnd.get_qrcode() # 拿到二维码图片路径,可推送给自己扫码 print("扫码二维码图片位于:", qrcode_path)效果说明:脚本会自动启动微信并截取登录二维码图片,你把图片发给自己的手机扫码即可完成登录。配合定时任务,可以实现"下班后自动登录另一台机器上的微信号,代为收发消息"的玩法。
六、常见问题与避坑指南
实践中最容易踩的坑,集中列出来帮你省时间:
- 微信版本不匹配:务必使用 3.9.X 版本,代码中版本号可在
wxauto/wxauto.py的VERSION常量里查看,版本不符时优先降级/升级微信而不是改代码。 - 窗口没登录或没打开:脚本依赖已打开的微信主窗口,运行前先确认客户端已登录且窗口未被最小化到系统托盘。
- 控件定位失败:
who参数尽量使用完整昵称/备注名,不完全匹配时工具只取搜索结果第一条,容易发错人。 - 监听脚本卡住不退出:监听场景需要手动循环轮询(如每 2 秒调用一次
GetListenMessage),并配合time.sleep,别让主线程空转或直接结束。 - 发送大文件较慢:
SendFiles走的是系统剪贴板模拟粘贴,文件路径建议用绝对路径,发送前先确认文件存在。 - 仅用于学习:请遵守项目免责声明,此工具仅用于 UIAutomation 技术交流学习,勿用于生产环境、商业用途或任何非法活动。
更多类方法细节可以翻阅项目内文档,例如快速示例见 docs/example.md,WeChat 类完整方法表见 docs/class/WeChat.md,核心实现集中在 wxauto/wxauto.py 与 wxauto/elements.py。
30 分钟已经足够你完成"发送第一条消息→搭建自动回复→批量处理好友申请"这条完整链路。现在就打开电脑:登录微信,克隆代码,把第三节的最小示例跑起来,再挑一个你最想偷懒的场景动手改造——下一次重复劳动到来之前,让它由你的代码代劳。
【免费下载链接】wxautoWindows版本微信客户端(非网页版)自动化,可实现简单的发送、接收微信消息,简单微信机器人项目地址: https://gitcode.com/gh_mirrors/wx/wxauto
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考