一个基于 Python + PyAutoGUI 实现的微信消息自动回复工具,通过屏幕识别和键鼠模拟完成消息监控、回复的全自动化流程。
- 自动定位并激活微信窗口
- 监控微信聊天界面变化,检测到新消息时触发自动回复
- 自动调用百度文心一言(chat.baidu.com)生成回复内容
- 通过屏幕图像识别完成按钮点击、内容复制粘贴等操作
- 支持Windows系统下的键鼠模拟,具备防点击失效的重试机制
仅支持 Windows 系统(脚本中通过 os.name == "nt" 限制,MacOS,Linux 系统会直接退出)
- 确保已安装 Python 3.7+ 版本
- 安装核心依赖包:
pip install pyautogui opencv-python pillow pywin32- 注意:
pyautogui依赖 OpenCV,安装失败时可尝试:
pip install opencv-python==4.8.0.74脚本依赖以下两个自定义模块(需确保与脚本同目录):
up.py:包含up_window()函数,用于激活/置顶指定窗口(如微信)message.py:包含get_screen_roi()和detect_screen_change()函数,用于监控屏幕区域变化check.py:包含is_clipboard_image(), 用于检测复制是否成功
-
准备识别用的图片文件(需与脚本同目录,已准备好):
button.png:需要点击的按钮截图chinese.png:输入法中文状态标识截图(用于判断输入法状态)copy_icon.png:复制按钮截图(用于复制生成的回复内容)copy.png: 同copy_icon.png, 备用
-
微信设置:
- 确保微信打开,在任务栏中有微信图标
- 将脚本文件(
auto_reply.py)、自定义模块和识别用图片放在同一目录 - 打开微信
- 运行脚本:
python auto_reply.py- 脚本启动后会有5秒倒计时,之后自动开始监控
- 终止脚本:按下
Ctrl + C或将鼠标移到最左上角(0,0)即可停止运行
- 首次运行时打开百度文心一言网页,后续运行时通过
Alt + Tab切换窗口 - 检测输入法状态,若未切换至中文则自动按
Shift切换 - 输入预设文字并粘贴剪贴板内容,发送生成的回复
- 识别并点击复制按钮,将回复内容复制到剪贴板
- 切换回微信窗口,粘贴并发送回复内容
- 持续监控屏幕变化,检测到新消息时重复上述流程
- 屏幕分辨率:脚本中的坐标(
520, 911)是基于特定分辨率的,更换设备/分辨率后需重新调整坐标值 - 图像识别精度:
confidence=0.9表示图像匹配精度为90%,识别失败时可适当调低(如0.8),但过低会导致误识别 - 权限问题:Windows系统下需以普通用户运行,管理员权限可能导致窗口激活失败
- 防失效机制:按钮点击时会检测是否成功,若失败会触发备用点击逻辑
- 安全提示:PyAutoGUI 的
FAILSAFE = True表示将鼠标移至屏幕左上角可触发紧急停止,防止脚本失控
- 检查图片文件是否存在、命名是否正确
- 确认
up.py中的up_window("微信")函数能正确识别微信窗口名称 - 关闭微信多开,仅保留一个微信窗口运行
- 确保系统默认输入法为中文,且
chinese.png能正确识别中文状态 - 脚本中已添加
pyautogui.press("shift")切换输入法,若仍失效可手动切换后再运行
本脚本仅用于学习和个人自用,请勿用于商业用途或违反微信用户协议的场景,使用产生的一切风险由使用者自行承担。