﻿微信伴侣 v1.0.8  ——  试用包
============================================================

【怎么用】

  1) 把整个文件夹拷到目标电脑（随意放哪，桌面也行）。
  2) 先打开微信（PC 版 4.x）并登录。
  3) 双击 WeChatAssist.exe。
  4) 面板会自动贴到微信窗口右边；找不到就点右下角托盘里的图标。
  5) 话术分区里【双击一条话术】= 自动填进微信输入框（默认只填、不发送）。
  6) 退出：右键托盘图标 → 退出；或右键面板 → 退出微信伴侣。

  ※ 不需要安装任何东西：程序自带了 .NET 运行时的全部文件。
    （所以文件夹里有 200 多个文件、约 200 MB，属正常。）

【目标电脑要满足什么】

  · Windows 10 版本 2004（内部版本 19041）或更高，或 Windows 11，64 位。
    低版本会缺少程序用到的一些系统接口。

  · 微信 PC 版 4.x 正在运行。本程序只看微信窗口，不改它的任何数据。

  · ★ 会话语义识别需要系统的中文 OCR 语言包：
      中文版 Windows 一般自带，无需处理。
      英文版 Windows 需要：设置 → 时间和语言 → 语言和区域
      → 添加「中文(简体，中国)」→ 语言选项 → 勾选「光学字符识别」。
      没装的话程序照样能用（记 / 查 / AI 按钮都在），只是「当前会话名」
      这一栏会留空，并如实提示读不到，不会编一个假名字。

【数据存在哪】

  路径：%LOCALAPPDATA%\WeChatAssist\
      settings.json   面板位置等设置
      phrases.json    话术
      notes.db3       记事（SQLite 数据库，标准格式，可用任意 SQLite 工具打开）
      backups\       备份文件（自动 / 手动 / 恢复前存档都放这儿）
      panel.log       运行日志（出问题看它）

  ※ 这是每用户目录，拷到新电脑是全新的一份，不会覆盖目标机上已有数据。
    想带话术/记事过去，就拷 phrases.json 与 notes.db3（或用下面的备份/恢复）。
    （记事已从 json 换成 SQLite；老版本留下的 notes.json 会在首次启动时
     自动导入新库，原文件改名成 notes.json.migrated.bak 保留、不会删。）

【备份与恢复】

  · 入口：右键托盘图标 →「备份与恢复…」（设置页左下角也有同一个入口）。
      立即备份…        把记录 + 话术 + 设置打成一个 zip，可自选存哪
      从备份文件恢复…  挑一个 zip，看清内容确认后覆盖当前数据
      备份历史         列表里可直接恢复 / 删除某一份，双击即恢复
  · 【恢复前程序会自动把当前数据另存一份】（backups\before-restore-*.zip），
    万一恢复错了还能退回去 —— 覆盖是不可逆的，这一步不会省。
  · 备份包会先验明身份：包里写着这是微信伴侣的备份、有多少条数据；
    随便挑一个 zip 会被拒绝，不会糊里糊涂覆盖掉你的记录。
  · 记录库是 WAL 模式，备份走的是 SQLite 自己的快照接口，
    最近刚记下的内容（可能还只在 -wal 里）不会漏。
  · 默认【每次启动自动备份一次】，只保留最近 8 份；
    份数可改、也可以直接关掉（都在同一个窗口里）。
  · 也能命令行 / 计划任务调用，不必打开面板：
      WeChatAssist.exe --backup                 存到 backups\，按保留份数滚动清理
      WeChatAssist.exe --backup D:\我的备份.zip  存到指定文件
      WeChatAssist.exe --restore D:\我的备份.zip 从指定文件恢复
    （--restore 前请先从托盘退出程序：运行中的实例占着数据文件。）

【有一件事它会改系统设置（请在目标机上知悉）】

  若系统里还没有「屏幕阅读器存在」这个标志，程序启动时会把它置为开
  （SPI_SETSCREENREADER；已有则不动）。原因：微信 4.x 只在检测到屏幕阅读器时
  才暴露控件树。该标志是登录会话级的（重启系统自动清零），影响通常仅限
  「部分应用启用无障碍相关行为」。

【适用范围（实测到哪一步）】

  · 微信 PC 版 4.x ：实测通过（开发机为 4.1.15.6）。
  · 微信 PC 版 3.x ：窗口查找是兼容的（按进程名识别），但「会话名」
    那一栏的截图区域是按 4.x 的界面布局实测出来的，没在 3.x 上验证过，
    可能读不准 —— 读不准时会留空并提示，不会编一个假名字。
  · ★ 会话名有两套来源，程序会先用控件树、读不到就自动改用截图识别。
    实测发现：不同微信号（登录账号）的微信，暴露控件树的能力不一样，
    有的账号完全没有控件树——这是微信自身的差异，外部改不了，
    所以程序不依赖它，只把它当「快的那条路」。

【读不到会话名怎么办】

  · 先确认微信没被最小化、也没收进托盘（收进托盘就截不到图了）。
  · 若确实读不到（部分微信号的微信不暴露控件树，或系统缺中文 OCR 语言包），
    程序会如实留空并提示，绝不会编一个假名字；
    此时仍可手动填写「联系人」，记 / 查都不受影响。
  · 想看细节就看日志 %LOCALAPPDATA%\WeChatAssist\panel.log 里 [OCR] 开头的行。

【话术双击填入 / 可选自动发送】

  · 在「话术」分区里双击一条，它会被填进微信当前的输入框。
    默认【只填，不发送】—— 发错人的代价不可逆，所以默认是关着的。

  · 想让它填完顺手发出去：右键托盘图标 →「话术发送」→ 选「回车」或
    「Ctrl+回车」。选哪个取决于你微信里【设置 → 快捷键 → 发送消息】设的是哪个；
    程序读不到微信这个设置，所以选错了它不会瞎报成功 ——
    没发出去会如实提示，内容还留在输入框里，你按一下回车就能补发。

  · 填入是【追加到光标处、不清空】：不会碰你已经打了一半的字。

  · 它是怎么做到的：微信的输入框不是标准输入框（是自绘的），没法直接写进去。
    程序的做法是【临时借用系统剪贴板 + 模拟一次 Ctrl+V】，用完立刻把剪贴板
    原样还原（文本 / 图片 / 文件都还原）。全过程不移动鼠标、不抢你的输入；
    只有微信窗口正好在前台时才会发送，否则一个字都不会发出去。

【记笔记时读不到「微信号昵称」怎么办】

  · 新版本微信的主窗标题里已经没有昵称了，程序要替你点一下左上角头像、
    读弹出的「个人资料卡」才能拿到。公司电脑慢时，点完要等几秒资料卡才弹全，
    若恰巧没读出来，会自动进入 5 分钟冷却（避免反复闪屏打扰你）。
  · 冷却期内、或你等不及，在「记」的对话框里点「手动获取昵称」即可当场再试一次：
    它用更宽容的等待时间（最多约 8 秒）、且忽略冷却，可以连点；读到了直接填进「微信号」框。
  · 若你的微信是以管理员身份运行的，本程序（普通权限）可能点不响头像——
    这种情况资料卡弹不出来，就请直接在「微信号」框里手填。

【一个键让面板消失 / 回来】

  · 默认热键是 F10：按一下面板消失，再按一下回来。
    想换键：右键托盘图标 → 设置… → 通用 → 面板热键（可选 F1~F12，可加 Ctrl/Alt/Shift）。
  · ★ 全局热键是【独占】的：登记之后，其它程序就收不到这个键了
    （例如把 F5 设成热键，浏览器里按 F5 就不再刷新）。这是 Windows 的规矩，
    不是本程序的选择，所以换键前请挑一个你平时不用的键；停用后立刻归还。
  · 万一这个键已经被别的软件先占了，程序启动时会如实在托盘提示一句，
    不会默默失效——那时换一个键即可。
  · 托盘右键菜单里也始终有「隐藏面板 / 显示面板」这一条（带当前按键提示），
    双击托盘图标是同一个动作。

【自动升级】

  · 入口：右键托盘图标 →「检查更新…」；设置页「通用 → 自动更新」里也能立刻查一次。
  · 默认已经填好了官方更新地址（https://wxassist.myyqn.com/update.json），
    启动约 15 秒后会自动查一次，同一天最多查一次。
    不希望它联网：把「启动时自动检查一次」关掉即可（把地址清空没用，留空会回到官方地址）。
    也可以换成你自己的地址 —— 那份 update.json 用同一种格式就行。
  · 发现新版本会先弹窗问你，并写明【这次下的是增量包还是完整包、多大】：
    本机正好是基线版本 → 下增量包（只有几 MB）；否则下完整包（大但一定装得全）。
    也可以选「跳过此版本」，以后不再提它。
  · 确认后：下载 → 本程序退出 → 独立的解压进程铺文件 → 自动重新打开。
    装之前会在本机数据目录里照常留一份备份（每次启动自动备份那套），不必额外担心。

【首次打开为什么面板会立刻贴上来】

  · 只要你开着微信，本程序一启动就会把面板贴到微信窗口上，不用先去点「记」。
    等你把微信切到前台用过一次之后，之后「微信被压到别的窗口后面」面板就会
    自动收起（即「随微信的出现或隐藏」）。

------------------------------------------------------------
本包由 tools/pack_release.py 生成。