Skip to content更新日志
v1.1.0 (2026-08-13)
新增
- ✨
auto_accept_new_friend(func) — 自动通过好友申请,支持条件过滤和自定义设置 - ✨
send_pat(nickname) — 发送拍一拍 - ✨
Event.PAT / Event.APP_READER — 新增拍一拍和读书笔记事件类型 - ✨
PatMessage / AppReaderMessage — 新增消息类型支持 - ✨
chat_with_contact(nickname) / chat_with_room(nickname) / chat_with_contact_or_room(nickname) / chat_with_official_account(nickname) / chat_with_service_account(nickname) — 按分类精确搜索会话 - ✨
get_messages_lazy(nickname) — 轻量模式获取消息(不截图识别发送者,性能更高) - ✨
iter_messages(nickname, count) — 生成器逐条获取最近消息(从最新到最旧) - ✨
get_recently_messages(nickname, count) — 获取最近消息列表 - ✨
get_labels() / iter_labels() / add_label() / rename_label() / delete_label() — 标签管理 - ✨
get_rooms() / iter_rooms() — 获取最近群聊列表 - ✨
open_contacts_manager() / close_contacts_manager() — 通讯录管理窗口 - ✨
get_wechat_contacts() / get_wework_contacts() / get_official_accounts() / get_service_accounts() — 完整版联系人列表 - ✨
get_wechat_contacts_brief() / get_wework_contacts_brief() 等 — 轻量版联系人列表(仅昵称) - ✨
iter_wechat_contacts() / iter_wework_contacts() 等 — 生成器逐条获取 - ✨
get_new_friends() / iter_new_friends() — 获取"新的朋友"列表 - ✨
iter_sessions(count, speed) — 生成器逐条获取会话列表 - ✨
get_unread_sessions() / iter_unread_sessions() — 获取未读会话 - ✨
get_selected_session() — 获取当前选中的会话 - ✨ 会话操作快捷方法:
pin_session / unpin_session / mark_session_as_read / mark_session_as_unread / mute_session / unmute_session / separate_session / hide_session / delete_session - ✨
scroll_session_to_top() / scroll_session_to_bottom() — 会话列表滚动 - ✨
scroll_chat_to_bottom(nickname) — 消息列表滚动到底部 - ✨
clear_chat_input(nickname) / paste_chat_input(nickname, content) / cancel_chat_quote(nickname) — 输入框操作快捷方法 - ✨
separate_chat(nickname) — 打开独立窗口快捷方法 - ✨
is_chat_pinned(nickname) / is_chat_muted(nickname) — 查询会话状态 - ✨
open_moments() / close_moments() / refresh_moments() — 朋友圈窗口管理 - ✨
get_visible_moments() / get_center_moment() / scroll_to_next_moment() — 朋友圈细粒度操作 - ✨
iter_files(count, speed, category) / get_visible_files() / get_file_by_id() — 文件管理器增强 - ✨
get_file_category() / get_file_order_by() — 查询文件管理器筛选状态 - ✨
download_file() / download_file_to() / save_file_as() / delete_file() — 文件操作快捷方法 - ✨
iter_collections(category, count, speed) / get_visible_collections() — 收藏管理增强 - ✨
open_collections(category) — 打开收藏并切换分类 - ✨
check_new_messages() / check_new_contacts() / check_new_moments() — 通过红点像素检测新通知 - ✨
Weixin.status 属性 — 获取微信状态 ("online" / "locked" / "login" / "offline") - ✨
Weixin.processes / Weixin.all_pids — 获取微信进程及子进程信息 - ✨
exit_room(nickname, clear_history) — 退出群聊,可选是否清空记录 - ✨
auto_scan 参数 — UI 监听模式下自动发现并注册新打开的独立聊天窗口 - ✨
contour_debug_dir 全局开关 + save_contour_debug(), 可输出"中间轮廓 + 分类结果"标注图,用于排查头像/昵称/正文的识别问题 - ✨ 设置操作大幅扩充:翻译语言、只读文件、搜索历史、语音转文字、系统浏览器、截图保留窗口、演示隐藏、通知声音、朋友圈/游戏通知标记等
- ✨
get_plugins() / download_plugin() — 插件管理 - ✨
get_about_info() / check_update() — 关于与更新
修复
- 🐛
@locked 的锁查找链只认 self._op_lock 和 self.wx._op_lock, 而 Message.chat / SessionItem.session / MomentItem.moment / Forward._parent 等 17 个类的父对象命名各不相同,导致约 160 个方法的线程互斥静默失效。 改为沿父对象逐级向上查找并缓存结果 - 🐛
Weixin(lock_input=True) 未同时指定 idle_wait 时,PIM.lock_input 不会被设置, 锁定物理输入的开关静默失效。现在两个参数各自独立生效 - 🐛 朋友圈/消息的轮廓识别中,
min_area 原先比较的是连通域边缘像素数(约等于周长), 导致边长小于约 50px 的头像被误滤掉。改为按 bbox 面积过滤,边长 24px 起均可识别 - 🐛 连通域标注由 4-连通改为 8-连通,圆角和斜边不再被切碎成上百个碎片
- 🐛
MomentItem.headimg_rect 现在会保留识别结果(原先只是内部局部变量)
优化
- ⚡ 轮廓识别改用
cv2.connectedComponentsWithStats 替代逐像素 flood fill, 消息气泡识别快约 9 倍,朋友圈九宫格快约 13 倍 - ⚡
_find_contour_rects 不再生成无人使用的红框标注图,返回值简化为矩形列表, 省掉一次绘制和 PNG 编码。需要标注图改用 save_contour_debug()
v1.0.0 (2026-06-23)
新增
- ✨ 后台模式(
background=True)— 通过 SendMessage 实现后台自动化 - ✨
offscreen 参数 — 窗口移到屏幕外,不干扰用户操作 - ✨
WeixinManager 多开管理 — 统一管理多个微信客户端 - ✨ 消息监听机制 — 基于事件驱动的
@wx.on(Event.TEXT) 装饰器 - ✨ 朋友圈操作 — 浏览、点赞、评论、发布图文/视频
- ✨ PIM 物理输入监控 — 人机协同保护,避免自动化与用户操作冲突
- ✨ 群聊管理 — 设置群名/公告/备注、添加/移除成员
- ✨ 联系人管理 — 设置标签/备注/星标/黑名单
- ✨ 收藏管理 — 浏览、搜索、转发收藏内容
- ✨ 文件管理器 — 搜索、下载、遍历聊天文件
- ✨ 设置操作 — 读取和修改微信各项设置
- ✨ 语音/视频通话控制
- ✨ 笔记编辑器
- ✨ 多种消息类型支持:文本、图片、视频、文件、语音、引用、表情、位置、链接、卡片、红包、转账等
- ✨ 基础消息发送(文本、文件、图片)
- ✨ 会话列表操作
- ✨ 消息读取
- ✨ 支持微信 4.x
特性
- 🔧 消息发送状态检测(
MessageStatus) - 🔧 OCR 双引擎支持(wcocr / rapidocr)
- 🔧 DPI 缩放自适应
- 🔧 剪贴板保存/恢复机制