From 4d8a4801b80f85a7969cbafc8df76653a4d69f07 Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Wed, 28 Jan 2026 16:34:52 +0800 Subject: [PATCH] 'commit' --- WeiXin/T2_ChatMonitor.py | 333 ------------------ WeiXin/WxUtil.py | 217 ++++++++---- WeiXin/__pycache__/WxUtil.cpython-310.pyc | Bin 31068 -> 33176 bytes ...2de1c258-fcc8-40bc-a5e7-7b89e28d1bee.vsidx | Bin 282978 -> 0 bytes ...d95b7591-1712-4381-b7ef-a387afb40f1b.vsidx | Bin 8282 -> 0 bytes ...f0de7db9-fb84-460b-9e62-5323d5caa827.vsidx | Bin 8825 -> 0 bytes WordAddIn/.vs/WordAddIn/v17/.suo | Bin 101376 -> 119296 bytes .../WordAddIn/v17/DocumentLayout.backup.json | 52 +-- .../.vs/WordAddIn/v17/DocumentLayout.json | 52 +-- WordAddIn/WordAddIn.sln | 10 +- WordAddIn/WordAddIn/AiRibbon.cs | 24 +- WordAddIn/WordAddIn/ThisAddIn.cs | 3 +- WordAddIn/WordAddIn/WordAddIn.csproj | 24 +- WordAddIn/WordAddIn/WordAddIn.csproj.user | 2 +- WordAddIn/WordAddIn/bin/Debug/WordAddIn.dll | Bin 102912 -> 98816 bytes .../bin/Debug/WordAddIn.dll.manifest | 8 +- WordAddIn/WordAddIn/bin/Debug/WordAddIn.pdb | Bin 142848 -> 140800 bytes WordAddIn/WordAddIn/bin/Debug/WordAddIn.vsto | 10 +- .../DesignTimeResolveAssemblyReferences.cache | Bin 217 -> 364 bytes .../WordAddIn.csproj.AssemblyReference.cache | Bin 11421 -> 11992 bytes .../WordAddIn.csproj.CoreCompileInputs.cache | 2 +- WordAddIn/WordAddIn/obj/Debug/WordAddIn.dll | Bin 102912 -> 98816 bytes WordAddIn/WordAddIn/obj/Debug/WordAddIn.pdb | Bin 142848 -> 140800 bytes .../WordAddIn.csproj.AssemblyReference.cache | Bin 15445 -> 11992 bytes 24 files changed, 202 insertions(+), 535 deletions(-) delete mode 100644 WeiXin/T2_ChatMonitor.py delete mode 100644 WordAddIn/.vs/WordAddIn/FileContentIndex/2de1c258-fcc8-40bc-a5e7-7b89e28d1bee.vsidx delete mode 100644 WordAddIn/.vs/WordAddIn/FileContentIndex/d95b7591-1712-4381-b7ef-a387afb40f1b.vsidx delete mode 100644 WordAddIn/.vs/WordAddIn/FileContentIndex/f0de7db9-fb84-460b-9e62-5323d5caa827.vsidx diff --git a/WeiXin/T2_ChatMonitor.py b/WeiXin/T2_ChatMonitor.py deleted file mode 100644 index 55559b2..0000000 --- a/WeiXin/T2_ChatMonitor.py +++ /dev/null @@ -1,333 +0,0 @@ -# coding=utf-8 -import os -import sys -import logging -import asyncio -import hashlib -import json -import numpy as np - -import cv2 - -# 添加项目根目录到 sys.path -project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) -if project_root not in sys.path: - sys.path.append(project_root) - -from WeiXin import WxUtil -from WeiXin.WxUtil import perform_input_action -from Util.LlmUtil import get_llm_response -from Util import Win32Patch - -# 配置日志 -log_dir = WxUtil.LOG_DIR -if not os.path.exists(log_dir): - os.makedirs(log_dir) - -log_file_path = os.path.join(log_dir, "T2_ChatMonitor.log") - -# 设置 logger -logger = logging.getLogger("T2_ChatMonitor") -logger.setLevel(logging.INFO) - -if logger.hasHandlers(): - logger.handlers.clear() - -file_handler = logging.FileHandler(log_file_path, encoding='utf-8', mode='w') -file_handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')) -logger.addHandler(file_handler) - -stream_handler = logging.StreamHandler() -stream_handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')) -logger.addHandler(stream_handler) - -logger.propagate = False -logger.info(f"🚀 日志文件路径: {os.path.abspath(log_file_path)}") - -# 同时将 WxUtil 的日志也输出到同一个文件 -wx_logger = logging.getLogger("WxUtil") -wx_logger.propagate = False # 防止日志向上传递导致重复 (因为 WxUtil 中调用了 basicConfig) -if not any(isinstance(h, logging.FileHandler) and os.path.abspath(h.baseFilename) == os.path.abspath(log_file_path) for h in wx_logger.handlers): - wx_logger.addHandler(file_handler) - wx_logger.addHandler(stream_handler) # 确保 WxUtil 也输出到控制台 - -class ChatMonitorBot: - """ - 大张老师自动巡课系统 (CV版) - """ - def __init__(self): - self.device = None - self.screenshot_path = os.path.join(WxUtil.OUTPUT_DIR, "T2_ChatMonitor_live_shot.jpg") - self.debug_view_path = os.path.join(WxUtil.OUTPUT_DIR, "T2_ChatMonitor_debug_view.jpg") - self.dialogue_log = [] - self.input_pos = None - self.last_screen_hash = None - self.last_processed_msg_hash = None - # [User Requested] 移除持久化存储,只在内存中记录,重启即忘 - self.processed_hashes = set() - self.check_interval = 3 # 检查频率 (秒) - - self.persona = ( - "你是一名1999年毕业、拥有27年一线教学经验的小学高级女教师,名叫‘大张老师’。你目前在‘长春市少惠林作文素养培养中心’工作。" - "你不仅是一位作文教学专家,更是一位心思细腻、能与家长共情的教育智者。" - "你的回复风格应该是:温柔、知性、亲切,就像一位邻家大姐姐在聊天。" - "【严格约束】:\n" - "1. 绝对禁止发散!绝对禁止幻觉!\n" - "2. 知道什么就说什么,不要乱讲话,不要自己编造内容!\n" - "3. 仅针对家长明确表达的内容进行回复。\n" - "4. 严禁使用列表格式。严禁使用‘首先、其次’等逻辑词。\n" - "5. 回复必须简练,字数严格控制在 50 字以内!\n" - "6. 对方问什么就答什么。例如问‘学校叫什么’,就只回答‘少惠林’,不要回复地址和电话!\n" - "如果涉及到校区信息,必须且只能使用以下真实数据:\n" - "- 单位/学校名称:长春市少惠林作文素养培养中心(简称:少惠林)\n" - "- 地址:南环城路与临河街交汇,TOUCH12街3楼325号\n" - "- 联系人:小张老师(电话:18686619970)\n" - "- 每学期开学招收小学三年级至六年级,初中七年级的学生入学,其它年段不招生。\n" - ) - - def _record_processed_hash(self, msg_hash): - """记录已处理的消息哈希 (仅内存)""" - self.processed_hashes.add(msg_hash) - # 仅保留最近 100 条记录,防止无限增长 - if len(self.processed_hashes) > 100: - # 简单丢弃旧的(转列表切片再转回集合) - temp = list(self.processed_hashes)[-100:] - self.processed_hashes = set(temp) - - async def get_reply(self, last_message_text, context_text=""): - prompt = ( - f"【教师人设】:{self.persona}\n\n" - f"【上下文对话内容】:\n{context_text}\n\n" - f"【最后一条待回复消息】:\n{last_message_text}\n\n" - "【任务要求】:\n" - "请作为大张老师回复家长。**必须且只能针对最后一条消息进行回复!**\n" - "参考上下文对话内容,确保回复逻辑连贯。\n" - "严禁发散,严禁编造家长没说过的情况。如果不清楚家长的意图,就温柔询问。\n" - "字数严格控制在 50 字以内。直接输出回复正文。" - ) - - full_response = "" - async for chunk in get_llm_response(prompt, stream=False): - full_response += chunk - return full_response.strip().strip('"').strip('“').strip('”') - - def step_1_prepare_env(self): - """步骤1: 环境准备""" - logger.info("--- [Step 1] 环境准备 ---") - WxUtil.setup_script_environment() - return True - - def step_2_connect_device(self): - """步骤2: 连接设备""" - logger.info("--- [Step 2] 连接设备 ---") - self.device = WxUtil.connect_device() - if not self.device: - logger.error("❌ 设备连接失败,请检查手机是否连接且开启了调试模式") - return False - return True - - def get_image_hash(self, file_path): - """计算图片的 MD5 哈希值 (忽略顶部 100 像素的状态栏)""" - if not os.path.exists(file_path): - return None - try: - # 使用 OpenCV 读取图片 - img = cv2.imread(file_path) - if img is None: - # 如果读取失败,回退到文件哈希 - with open(file_path, "rb") as f: - return hashlib.md5(f.read()).hexdigest() - - # 裁剪掉顶部 150 像素 (状态栏/时间) - h, w = img.shape[:2] - if h > 150: - cropped_img = img[150:h, 0:w] - else: - cropped_img = img - - # 计算裁剪后数据的哈希 - return hashlib.md5(cropped_img.tobytes()).hexdigest() - except Exception as e: - logger.error(f"计算哈希出错: {e}, 回退到文件哈希") - with open(file_path, "rb") as f: - return hashlib.md5(f.read()).hexdigest() - - def get_stable_message_hash(self, msg): - """ - 计算消息的稳定哈希值(忽略坐标等易变字段) - 仅包含: sender, content, time_display, type - """ - if not msg: - return "" - - stable_data = { - "sender": msg.get("sender", ""), - "content": msg.get("content") or "", # 确保 None 转为空字符串 - "time_display": msg.get("time_display", ""), - "type": msg.get("type", "") - } - - # 序列化并计算哈希 - msg_str = json.dumps(stable_data, sort_keys=True, ensure_ascii=False) - return hashlib.md5(msg_str.encode('utf-8')).hexdigest() - - async def run(self): - """ - 主运行循环 - """ - logger.info("🚀 正在启动 T2_ChatMonitor (Auto-Reply)...") - - # 定义 JSON 序列化辅助函数 - def numpy_serializer(obj): - if isinstance(obj, np.integer): - return int(obj) - if isinstance(obj, np.floating): - return float(obj) - if isinstance(obj, np.ndarray): - return obj.tolist() - raise TypeError(f"Type {type(obj)} not serializable") - - # 1. 环境准备 - if not self.step_1_prepare_env(): return - if not self.step_2_connect_device(): return - - # [User Requested] 移除首屏概念,直接进入监控循环 - # 以前说过什么都不管了,只关注最后一条 - logger.info("🚀 启动完成,直接进入实时监控阶段...") - - # 3. 进入循环阶段 - while True: - try: - # A. 截图并计算哈希 - self.device.screenshot(self.screenshot_path) - current_screen_hash = self.get_image_hash(self.screenshot_path) - - # B. 如果屏幕无变化,则跳过识别 - if current_screen_hash == self.last_screen_hash: - await asyncio.sleep(self.check_interval) - continue - - self.last_screen_hash = current_screen_hash - logger.info("📸 屏幕发生变化,正在分析...") - - # C. 分析最新图片 - dialogue_log, input_pos = await WxUtil.analyze_chat_image( - self.screenshot_path, - self.debug_view_path, - device=self.device, - process_strategy="UNREAD" # 监控阶段:只处理带红点的新语音 - ) - - if not dialogue_log: - logger.info("😴 未识别到有效消息") - await asyncio.sleep(self.check_interval) - continue - - logger.info(f"📊 当前识别到 {len(dialogue_log)} 条消息,最后一条: {dialogue_log[-1]}") - - # 更新当前对话日志(可用于上下文参考) - self.dialogue_log = dialogue_log - self.input_pos = input_pos - - # D. 只关注最后一条消息 - last_msg = dialogue_log[-1] - # 计算稳定哈希(忽略坐标变化) - current_msg_hash = self.get_stable_message_hash(last_msg) - - # E. 判断是否需要回复 (对方发送且非重复消息) - sender = last_msg.get('sender', '') - - # Check if hash is already processed (in-memory only) - is_processed = current_msg_hash in self.processed_hashes - - # Log only if it changed from last *in-memory* check to avoid spam - if is_processed and current_msg_hash != self.last_processed_msg_hash: - # logger.info(f"🚫 [监控] 消息哈希已存在于历史记录中,跳过回复 (Hash: {current_msg_hash})") - self.last_processed_msg_hash = current_msg_hash - - if not is_processed and current_msg_hash != self.last_processed_msg_hash: - if sender != "我": - event_shot = WxUtil.get_next_debug_path("event_new_msg") - self.device.screenshot(event_shot) - logger.info(f"💡 [监控] 发现新消息: {last_msg},保存现场截图: {event_shot}") - - # 获取上下文文本 (格式化为 Sender: Content) - context_text = "\n".join([f"{m.get('time_display', '') + ' ' if m.get('time_display') else ''}{m.get('sender')}: {m.get('content')}" for m in dialogue_log[:-1]]) - last_content = last_msg.get('content') or "" - - # 兜底逻辑:如果最后一条是语音且内容为空(可能因无红点未被 UNREAD 策略处理),尝试强制转换 - if last_msg.get('type') == 'voice' and not last_content.strip(): - logger.info("⚠️ [监控] 最后一条语音消息未获取到内容(可能已读无红点),尝试强制转换...") - # 强制使用 LAST 策略重试 - dialogue_log_retry, _ = await WxUtil.analyze_chat_image( - self.screenshot_path, - self.debug_view_path, - device=self.device, - process_strategy="LAST" - ) - if dialogue_log_retry: - # 更新引用 - self.dialogue_log = dialogue_log_retry - dialogue_log = dialogue_log_retry - last_msg = dialogue_log[-1] - last_content = last_msg.get('content') or "" - logger.info(f"🔄 [重试] 强制转换后内容: {last_content}") - - # 重新构建哈希 - current_msg_hash = self.get_stable_message_hash(last_msg) - # 再次检查是否已处理 (因为内容变了,哈希变了) - if current_msg_hash in self.processed_hashes: - logger.info(f"🚫 [重试] 转换后发现该消息已处理,跳过。") - self.last_processed_msg_hash = current_msg_hash - # 跳过本次循环的剩余部分 - continue - - # 生成回复 - reply = await self.get_reply(last_content, context_text) - - if reply: - logger.info(f"🤖 [监控] LLM 建议回复: {reply}") - if self.input_pos: - logger.info(f"⚡ [监控] 执行自动回复...") - # input_pos 是 ((x,y), box) 格式,取第一个元素坐标点 - target_pos = self.input_pos[0] if isinstance(self.input_pos, (list, tuple)) and len(self.input_pos) == 2 and isinstance(self.input_pos[0], (list, tuple)) else self.input_pos - # 简单兼容处理:如果 input_pos[0] 是 tuple/list 且 input_pos[1] 是 None/box,则取 input_pos[0] - if isinstance(self.input_pos, (list, tuple)) and len(self.input_pos) == 2 and isinstance(self.input_pos[0], (list, tuple)): - target_pos = self.input_pos[0] - - perform_input_action(self.device, target_pos, reply) - - # 发送后截图留存 - reply_sent_shot = WxUtil.get_next_debug_path("event_reply_sent") - self.device.screenshot(reply_sent_shot) - logger.info(f"✅ [监控] 回复已发送,保存发送后截图: {reply_sent_shot}") - - self._record_processed_hash(current_msg_hash) - self.last_processed_msg_hash = current_msg_hash - else: - logger.error("❌ 未找到输入框位置,无法发送回复") - else: - logger.info("⚪ [监控] LLM 认为无需回复") - self._record_processed_hash(current_msg_hash) - self.last_processed_msg_hash = current_msg_hash - else: - # 是我发的消息,更新哈希,不再处理 - self.last_processed_msg_hash = current_msg_hash - - await asyncio.sleep(self.check_interval) - - except Exception as e: - logger.error(f"Error in monitoring loop: {e}", exc_info=True) - await asyncio.sleep(self.check_interval) - -async def run_main(): - """ - 运行自动巡课机器人 - """ - bot = ChatMonitorBot() - await bot.run() - -if __name__ == "__main__": - # 应用 Win32 补丁 - Win32Patch.patch() - asyncio.run(run_main()) diff --git a/WeiXin/WxUtil.py b/WeiXin/WxUtil.py index 28e25a7..ce56993 100644 --- a/WeiXin/WxUtil.py +++ b/WeiXin/WxUtil.py @@ -40,9 +40,16 @@ def parse_wechat_time(time_str): 支持: "10:03", "昨天 10:03", "星期三 10:03", "2025年1月1日 10:03" """ try: + clean_str = time_str.strip() + + # 0. 预处理:过滤纯数字(防止电话号码被误识别为时间) + # 微信时间戳通常包含中文或冒号,单纯的数字串(如 "18686619970")不是有效时间 + if re.match(r'^\d+$', clean_str): + logger.warning(f"忽略疑似电话号码/纯数字的时间字符串: '{clean_str}'") + return "" + now = datetime.now() today = now.date() - clean_str = time_str.strip() # 1. HH:mm (当天) # 注意:有时候 OCR 会把冒号识别成其他字符,这里假设是标准的 HH:mm @@ -130,10 +137,11 @@ def parse_wechat_time(time_str): dt = datetime.combine(today, datetime.min.time().replace(hour=h, minute=m)) return dt.strftime("%Y-%m-%d %H:%M") - return clean_str # 解析失败,返回原串 + # 解析失败,返回空字符串,避免将无关文本(如电话号码)误认为时间注入到上下文中 + return "" except Exception as e: logger.warning(f"时间解析失败 '{time_str}': {e}") - return time_str + return "" def get_next_debug_path(desc="step"): """获取下一个顺序命名的调试图片路径 (debug_N_desc.jpg)""" @@ -305,6 +313,11 @@ def _detect_bubble_color(img, bbox): # 且亮度不能太低 (太低可能是黑色背景或深色物体) if g > 150: return "white" + + # 特殊补丁:如果 B, G, R 都很接近且在 130 左右,可能是微信的背景灰 (通常用于时间戳或系统消息) + if 110 < r < 160 and 110 < g < 160 and 110 < b < 160: + if abs(r - g) < 15 and abs(g - b) < 15: + return "system_gray" return "unknown" @@ -359,7 +372,7 @@ def _scan_chat_messages(image_path): # 微信菜单关键字(用于排除干扰) MENU_KEYWORDS = ["听筒播放", "收藏", "背景播放", "删除", "多选", "取消转文字", "转文字", "引用", "提醒"] # 忽略的系统消息内容 - IGNORE_CONTENT = ["撤回了一条消息", "打招呼的消息", "拍了拍", "你撤回了一条消息", "引用", "Clear Text", "Switch IME", "Done"] + IGNORE_CONTENT = ["撤回了一条消息", "打招呼的消息", "拍了拍", "你撤回了一条消息", "引用", "Clear Text", "Switch IME", "Done", "按住说话", "发送"] # 5. 整合所有消息 messages = [] @@ -367,9 +380,9 @@ def _scan_chat_messages(image_path): # 绘制过滤区域边界 (可视化) cv2.line(debug_img, (0, 150), (w, 150), (255, 0, 255), 2) # 顶部线 - cv2.line(debug_img, (0, h - 100), (w, h - 100), (255, 0, 255), 2) # 底部线 + cv2.line(debug_img, (0, h - 60), (w, h - 60), (255, 0, 255), 2) # 底部线 (放宽到底部 60px) cv2.putText(debug_img, "TOP_FILTER", (10, 140), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 0, 255), 1) - cv2.putText(debug_img, "BOTTOM_FILTER", (10, h - 110), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 0, 255), 1) + cv2.putText(debug_img, "BOTTOM_FILTER", (10, h - 70), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 0, 255), 1) claimed_ocr_indices = set() @@ -379,7 +392,7 @@ def _scan_chat_messages(image_path): cv2.circle(debug_img, (ax, ay), 10, (255, 255, 0), -1) # 过滤掉顶部和底部的非聊天区域 - if ay < 150 or ay > h - 100: + if ay < 150 or ay > h - 60: logger.info(f"忽略区域外语音图标: ({ax}, {ay})") cv2.rectangle(debug_img, (ax-35, ay-35), (ax+35, ay+35), (128, 128, 128), 1) cv2.putText(debug_img, "FILTERED", (ax - 40, ay - 45), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (128, 128, 128), 1) @@ -416,25 +429,32 @@ def _scan_chat_messages(image_path): if voice_is_left: # 语音在左 (对方): 文本必须也是左对齐 - # - min_x 必须靠左 (< 300) + # - min_x 必须靠左 (< 450) [Fix] 放宽阈值,防止长文本或缩进文本被过滤 # - max_x 不能太靠右 (> w - 150),否则可能是"我"的消息 - if min_x > 300 or max_x > w - 150: + if min_x > 450 or max_x > w - 150: + logger.debug(f"忽略文本 '{text[:10]}' (Left Voice): min_x={min_x}, max_x={max_x} 不满足左对齐条件") continue else: # 语音在右 (我): 文本必须也是右对齐 # - max_x 必须靠右 (> w - 300) # - min_x 不能太靠左 (< 100) if max_x < w - 300 or min_x < 100: + logger.debug(f"忽略文本 '{text[:10]}' (Right Voice): min_x={min_x}, max_x={max_x} 不满足右对齐条件") continue - if -50 < c_y - ay < 800 and abs(c_x - ax) < 500: + # [Fix] 放宽 X 轴判定范围 (500 -> 600) 以适应更宽的文本 + if -50 < c_y - ay < 800 and abs(c_x - ax) < 600: # 检查中间是否有其他语音图标 has_intermediate_audio = False for other_ax, other_ay in audio_matches: + # 只有当中间的语音图标在 [150, h-60] 的有效聊天区域内时,才视为阻断 if ay + 20 < other_ay < c_y - 10: - has_intermediate_audio = True - logger.info(f"语音({ax},{ay}) 被中间语音图标({other_ax},{other_ay}) 阻断,无法关联文本 '{text[:10]}...'") - break + if 150 <= other_ay <= h - 60: + has_intermediate_audio = True + logger.info(f"语音({ax},{ay}) 被中间有效区域内的语音图标({other_ax},{other_ay}) 阻断,无法关联文本 '{text[:10]}...'") + break + else: + logger.info(f"语音({ax},{ay}) 忽略非聊天区域(Y={other_ay})的语音图标阻断") if has_intermediate_audio: continue @@ -532,7 +552,7 @@ def _scan_chat_messages(image_path): c_x = int((bbox[0][0] + bbox[2][0]) / 2) c_y = int((bbox[0][1] + bbox[2][1]) / 2) - if c_y < 150 or c_y > h - 100: + if c_y < 150 or c_y > h - 60: continue # 判定发送者 (增强版: 几何 + 颜色) @@ -544,6 +564,9 @@ def _scan_chat_messages(image_path): sender = "我" elif sender_color == "white": sender = "对方" + elif sender_color == "system_gray": + # 灰底文字通常是时间戳或系统消息,由系统发送,几何上居中 + sender = "system" # 2. 几何特征强制修正 (Double Check) # 假设头像+边距约占 15% 宽度 @@ -561,12 +584,15 @@ def _scan_chat_messages(image_path): # 规则 B: 如果这一行极其靠左 (小于 35% 宽度),且不靠右,那肯定是"对方" # 扩大判定范围,防止因为 OCR 稍微缩进导致判定失效 # 注意:如果颜色明确为"我"(绿色),则跳过此规则,因为"我"的长消息也可能靠左 - elif min_x < w * 0.35 and max_x < w * 0.85: + elif min_x < w * 0.35 and max_x < w * 0.75: # 修正:max_x 阈值从 0.85 降低到 0.75 if sender == "我": logger.info(f"Geometry says '对方' (min_x={min_x} < {w*0.35}) but Color is '我' (Green). Trusting Color.") + elif sender == "system": + # 即使颜色是系统灰,但如果位置极其靠左,也可能是对方的某种特殊气泡 + pass else: sender = "对方" - + # 规则 C: 如果颜色是 unknown,且不在极端位置,使用中心点兜底 if sender == "unknown": c_x = int((min_x + max_x) / 2) @@ -584,6 +610,9 @@ def _scan_chat_messages(image_path): # [Fix] 如果颜色明确是绿色,说明是"我"的左对齐文本(长文换行),不应被几何规则强制改为"对方" if sender == "我" and sender_color == "green": logger.info(f"Geometry says '对方' (center={c_x} < {w*0.45}) but Color is 'green'. Keeping '我'.") + elif sender == "system": + # 系统消息允许居中或偏左 + pass else: if sender == "我": logger.warning(f"Sender detected as '我' by color but center is left ({c_x} < {w*0.45}). Correcting to '对方'.") @@ -592,7 +621,10 @@ def _scan_chat_messages(image_path): elif c_x > w * 0.55: if sender == "对方": logger.warning(f"Sender detected as '对方' by color but center is right ({c_x} > {w*0.55}). Correcting to '我'.") - sender = "我" + elif sender == "system": + pass + else: + sender = "我" else: logger.info(f"Message in middle zone ({w*0.45} < {c_x} < {w*0.55}), trusting color detection: {sender}") else: @@ -665,10 +697,12 @@ def _scan_chat_messages(image_path): return final_messages_with_time, debug_img, chat_title -async def analyze_chat_image(image_path, output_path, device=None, target_name="对方", process_strategy="ALL"): +async def analyze_chat_image(image_path, output_path, device=None, target_name="对方", process_strategy="ALL", restore_processed_voice=True): """ 全面采用 CV + OCR 识别微信聊天截图中的最后一条消息 :param process_strategy: 语音处理策略 (ALL/UNREAD/LAST) + :param restore_processed_voice: 是否在转文字后还原(隐藏文字)。默认为 True。 + 设为 False 可防止最后一条消息在无内容时陷入"转文字->还原->空内容"的死循环。 注意:此函数现在包含一个循环,如果发现需要转文字的语音,会逐个处理并重新截图。 """ try: @@ -799,21 +833,39 @@ async def analyze_chat_image(image_path, output_path, device=None, target_name=" # 1. 截图 (但不立即 OCR,而是丢给异步任务) peek_shot = get_next_debug_path("step_peek_content") d.screenshot(peek_shot) - logger.info("已截图,启动异步OCR任务以提取内容...") + logger.info(f"已截图 {peek_shot},启动异步OCR任务以提取内容...") async def _async_ocr_task(img_path, target_y): """内部异步任务:在线程池中运行 OCR""" - loop = asyncio.get_running_loop() - # 在默认执行器(线程池)中运行耗时的 _scan_chat_messages - msgs, _, _ = await loop.run_in_executor(None, _scan_chat_messages, img_path) - - found = None - for pm in msgs: - if pm['type'] == 'voice' and pm.get('is_converted'): - if abs(pm['y'] - target_y) < 50: - found = pm.get('content') - break - return target_y, found + try: + loop = asyncio.get_running_loop() + # 在默认执行器(线程池)中运行耗时的 _scan_chat_messages + logger.info(f"🚀 [Async OCR] 开始分析截图 {os.path.basename(img_path)} (目标 Y={target_y})") + msgs, _, _ = await loop.run_in_executor(None, _scan_chat_messages, img_path) + + found = None + # 收集所有可能是该语音消息转换出的文本 + all_found_texts = [] + for pm in msgs: + if pm['type'] == 'voice' and pm.get('is_converted'): + # 容差稍微放大,因为转文字展开后 Y 坐标会变 + if abs(pm['y'] - target_y) < 150: # 进一步放宽容差 + content = pm.get('content', '').strip() + if content: + all_found_texts.append((pm['y'], content)) + + if all_found_texts: + # 按 Y 轴排序,确保多行文本顺序正确 + all_found_texts.sort(key=lambda x: x[0]) + found = " ".join([t[1] for t in all_found_texts]) + logger.info(f"✨ [Async OCR] 在 Y={target_y} 附近找到转换文字: {found}") + + if not found: + logger.warning(f"⚠️ [Async OCR] 未能在 Y={target_y} 附近找到已转换文字") + return target_y, found + except Exception as e: + logger.error(f"❌ [Async OCR] 任务执行失败: {e}") + return target_y, None # 创建并保存任务 task = asyncio.create_task(_async_ocr_task(peek_shot, vy)) @@ -822,44 +874,61 @@ async def analyze_chat_image(image_path, output_path, device=None, target_name=" analyze_chat_image._ocr_tasks = [] analyze_chat_image._ocr_tasks.append(task) - # 2. 立即还原状态 (取消转文字) + # 2. 还原状态 (取消转文字) # 注意:由于 OCR 还没出结果,我们无法精确定位展开后的文字位置 # 但通常点击原语音气泡位置 (vx, vy) 也能触发菜单 - logger.info("准备还原状态 (取消转文字)...") - - d.long_click(vx, vy, 1.0) # 盲点原坐标 - - logger.info("正在快速寻找'隐藏文字'按钮...") - cancel_template = os.path.join(TEMPLATE_DIR, "cancel_zhuan_wen_zi.jpg") - cancel_btn = None - - poll_start = time.time() - while time.time() - poll_start < 3.0: - restore_menu_shot = get_next_debug_path("step_restore_poll") - d.screenshot(restore_menu_shot) - cancel_btn = find_template_match(restore_menu_shot, cancel_template, threshold=0.7) + if restore_processed_voice: + logger.info("准备还原状态 (取消转文字)...") + + d.long_click(vx, vy, 1.0) # 盲点原坐标 + + logger.info("正在快速寻找'隐藏文字'按钮...") + cancel_template = os.path.join(TEMPLATE_DIR, "cancel_zhuan_wen_zi.jpg") + cancel_btn = None + + poll_start = time.time() + while time.time() - poll_start < 3.0: + restore_menu_shot = get_next_debug_path("step_restore_poll") + d.screenshot(restore_menu_shot) + cancel_btn = find_template_match(restore_menu_shot, cancel_template, threshold=0.7) + if cancel_btn: + break + time.sleep(0.2) + if cancel_btn: + cx, cy = int(cancel_btn[0]), int(cancel_btn[1]) + logger.info(f"✅ 找到'隐藏文字'按钮: ({cx}, {cy}),点击还原...") + safe_device_click(d, cx, cy) + convert_closed_count += 1 + time.sleep(2.0) # 等待收起动画 + else: + logger.warning("❌ 未找到'隐藏文字'按钮,无法还原状态!(后续可能导致重复处理)") + + # 3. 准备下一次循环 + if len(target_voices) == 1: + logger.info("✅ 当前屏幕所有目标语音已处理完毕,无需再次全屏扫描。") + final_messages = messages # 使用本轮初始扫描的消息列表 break - time.sleep(0.2) - - if cancel_btn: - cx, cy = int(cancel_btn[0]), int(cancel_btn[1]) - logger.info(f"✅ 找到'隐藏文字'按钮: ({cx}, {cy}),点击还原...") - safe_device_click(d, cx, cy) - convert_closed_count += 1 - time.sleep(2.0) # 等待收起动画 + + # 重新截图,因为界面可能微调,或者只是恢复了 + next_screenshot = get_next_debug_path("step_restored") + d.screenshot(next_screenshot) + + current_image_path = next_screenshot + current_output_path = get_next_debug_path("flag_restored") + + continue else: - logger.warning("❌ 未找到'隐藏文字'按钮,无法还原状态!(后续可能导致重复处理)") - - # 3. 准备下一次循环 - # 重新截图,因为界面可能微调,或者只是恢复了 - next_screenshot = get_next_debug_path("step_restored") - d.screenshot(next_screenshot) - - current_image_path = next_screenshot - current_output_path = get_next_debug_path("flag_restored") - - continue + logger.info("⏩ [配置] 跳过还原状态步骤 (保持文字展开)。") + # 即使不还原,我们也不建议继续处理下一条,因为界面已经大幅变动(展开了文字)。 + # 除非我们重新截图并重新定位。 + # 但在这里,如果 restore_processed_voice=False,通常意味着我们只关心最后一条(LAST策略),或者我们接受界面变动。 + + # 为了安全起见,如果不还原,我们最好终止循环(假设只处理这一条,或者下一轮主循环再处理其他的) + # 否则后续的 target_voices 坐标全都不准了。 + logger.info("🛑 因不还原状态,终止本轮多语音处理循环,等待下一次主监控循环。") + final_messages = messages # 这里的 messages 其实是展开前的,但没关系,我们的内容通过 captured_voice_contents 注入 + break else: logger.warning("❌ 未找到'转文字'按钮,可能是已转换或误判") @@ -887,12 +956,13 @@ async def analyze_chat_image(image_path, output_path, device=None, target_name=" if captured_voice_contents: logger.info(f"正在注入 {len(captured_voice_contents)} 条已还原的语音内容...") for m in final_messages: - if m['type'] == 'voice' and not m.get('content'): + if m['type'] == 'voice' and (not m.get('content') or m.get('content').strip() == ""): for py, content in captured_voice_contents.items(): - if abs(m['y'] - py) < 30: # 匹配原始 Y 坐标 + # 注入时的容差也要放大,因为 final_messages 的 Y 可能和点击时的 vy 略有差异 + if abs(m['y'] - py) < 100: m['content'] = content m['is_converted'] = True # 标记为逻辑上已转换 - logger.info(f" -> 注入内容: {content[:10]}...") + logger.info(f" -> 注入内容到 Y={m['y']} (原 py={py}): {content[:20]}...") break # 构造返回值 @@ -931,15 +1001,16 @@ async def analyze_chat_image(image_path, output_path, device=None, target_name=" # 尝试注入异步获取的语音内容 if msg['type'] == 'voice': # 模糊匹配 Y 坐标 (增大容差到 100,应对界面滚动) - for y_key, content in captured_voice_contents.items(): - if abs(msg['y'] - y_key) < 100: - msg['is_converted'] = True - msg['content'] = content - logger.info(f"注入语音内容到最终消息列表: {content}") - break + # 优先检查 content 是否为空或为 placeholder + if not msg.get('content') or msg.get('content').strip() == "": + for y_key, content in captured_voice_contents.items(): + if abs(msg['y'] - y_key) < 100: + msg['is_converted'] = True + msg['content'] = content + logger.info(f"✅ [注入] 成功将异步语音内容 '{content}' 注入到 Y={msg['y']} 的消息中") + break # 无论是否有内容,都加入 dialogue_log - # 如果是语音且没内容,T2 会有兜底逻辑去处理 if msg['type'] == 'text': if msg.get('content'): # 文本消息没内容通常是识别错误,可以丢弃 dialogue_log.append(msg) diff --git a/WeiXin/__pycache__/WxUtil.cpython-310.pyc b/WeiXin/__pycache__/WxUtil.cpython-310.pyc index 9973afc116690d68e4e12c7184aae075ba4c7dee..2ca1d4948bf3df14b4f6bcf30a05692e05534ada 100644 GIT binary patch delta 13324 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 TwIjii>CAN&I_GMk#Kr#?zNA-? delta 11242 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 diff --git a/WordAddIn/.vs/WordAddIn/FileContentIndex/d95b7591-1712-4381-b7ef-a387afb40f1b.vsidx b/WordAddIn/.vs/WordAddIn/FileContentIndex/d95b7591-1712-4381-b7ef-a387afb40f1b.vsidx deleted file mode 100644 index 3d8c1ddeb18c40842159d4dbc9f10628c46a301d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8282 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 bG4db3HcNWzXFVRKR6G6awElgyamN1vCTkjD diff --git a/WordAddIn/.vs/WordAddIn/FileContentIndex/f0de7db9-fb84-460b-9e62-5323d5caa827.vsidx b/WordAddIn/.vs/WordAddIn/FileContentIndex/f0de7db9-fb84-460b-9e62-5323d5caa827.vsidx deleted file mode 100644 index 694549d4f519e36b370afc060b5ffc907f08bff2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8825 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 literal 101376 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 G{r>?J&t|y* diff --git a/WordAddIn/.vs/WordAddIn/v17/DocumentLayout.backup.json b/WordAddIn/.vs/WordAddIn/v17/DocumentLayout.backup.json index 53c6430..131493c 100644 --- a/WordAddIn/.vs/WordAddIn/v17/DocumentLayout.backup.json +++ b/WordAddIn/.vs/WordAddIn/v17/DocumentLayout.backup.json @@ -1,20 +1,7 @@ { "Version": 1, "WorkspaceRootPath": "D:\\dsWork\\aiData\\WordAddIn\\", - "Documents": [ - { - "AbsoluteMoniker": "D:0:0:{EC0A80FA-FCBD-4239-945A-627B20CCCBAA}|WordAddIn\\WordAddIn.csproj|d:\\dswork\\aidata\\wordaddin\\wordaddin\\airibbon.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EC0A80FA-FCBD-4239-945A-627B20CCCBAA}|WordAddIn\\WordAddIn.csproj|solutionrelative:wordaddin\\airibbon.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{EC0A80FA-FCBD-4239-945A-627B20CCCBAA}|WordAddIn\\WordAddIn.csproj|D:\\dsWork\\aiData\\WordAddIn\\wordaddin\\referencegeneratorform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form", - "RelativeMoniker": "D:0:0:{EC0A80FA-FCBD-4239-945A-627B20CCCBAA}|WordAddIn\\WordAddIn.csproj|solutionrelative:wordaddin\\referencegeneratorform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form" - }, - { - "AbsoluteMoniker": "D:0:0:{EC0A80FA-FCBD-4239-945A-627B20CCCBAA}|WordAddIn\\WordAddIn.csproj|D:\\dsWork\\aiData\\WordAddIn\\wordaddin\\outlinesettingsform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form", - "RelativeMoniker": "D:0:0:{EC0A80FA-FCBD-4239-945A-627B20CCCBAA}|WordAddIn\\WordAddIn.csproj|solutionrelative:wordaddin\\outlinesettingsform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form" - } - ], + "Documents": [], "DocumentGroupContainers": [ { "Orientation": 0, @@ -22,46 +9,11 @@ "DocumentGroups": [ { "DockedWidth": 200, - "SelectedChildIndex": 1, + "SelectedChildIndex": -1, "Children": [ { "$type": "Bookmark", "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}" - }, - { - "$type": "Document", - "DocumentIndex": 0, - "Title": "AiRibbon.cs", - "DocumentMoniker": "D:\\dsWork\\aiData\\WordAddIn\\WordAddIn\\AiRibbon.cs", - "RelativeDocumentMoniker": "WordAddIn\\AiRibbon.cs", - "ToolTip": "D:\\dsWork\\aiData\\WordAddIn\\WordAddIn\\AiRibbon.cs", - "RelativeToolTip": "WordAddIn\\AiRibbon.cs", - "ViewState": "AgIAAPcAAAAAAAAAAAA1wAsBAABFAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2026-01-24T10:05:10.056Z", - "EditorCaption": "" - }, - { - "$type": "Document", - "DocumentIndex": 1, - "Title": "ReferenceGeneratorForm.cs [\u8BBE\u8BA1]", - "DocumentMoniker": "D:\\dsWork\\aiData\\WordAddIn\\WordAddIn\\ReferenceGeneratorForm.cs", - "RelativeDocumentMoniker": "WordAddIn\\ReferenceGeneratorForm.cs", - "ToolTip": "D:\\dsWork\\aiData\\WordAddIn\\WordAddIn\\ReferenceGeneratorForm.cs [\u8BBE\u8BA1]", - "RelativeToolTip": "WordAddIn\\ReferenceGeneratorForm.cs [\u8BBE\u8BA1]", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2026-01-24T10:05:02.111Z" - }, - { - "$type": "Document", - "DocumentIndex": 2, - "Title": "OutlineSettingsForm.cs [\u8BBE\u8BA1]", - "DocumentMoniker": "D:\\dsWork\\aiData\\WordAddIn\\WordAddIn\\OutlineSettingsForm.cs", - "RelativeDocumentMoniker": "WordAddIn\\OutlineSettingsForm.cs", - "ToolTip": "D:\\dsWork\\aiData\\WordAddIn\\WordAddIn\\OutlineSettingsForm.cs [\u8BBE\u8BA1]", - "RelativeToolTip": "WordAddIn\\OutlineSettingsForm.cs [\u8BBE\u8BA1]", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2026-01-24T10:04:59.465Z" } ] } diff --git a/WordAddIn/.vs/WordAddIn/v17/DocumentLayout.json b/WordAddIn/.vs/WordAddIn/v17/DocumentLayout.json index 53c6430..131493c 100644 --- a/WordAddIn/.vs/WordAddIn/v17/DocumentLayout.json +++ b/WordAddIn/.vs/WordAddIn/v17/DocumentLayout.json @@ -1,20 +1,7 @@ { "Version": 1, "WorkspaceRootPath": "D:\\dsWork\\aiData\\WordAddIn\\", - "Documents": [ - { - "AbsoluteMoniker": "D:0:0:{EC0A80FA-FCBD-4239-945A-627B20CCCBAA}|WordAddIn\\WordAddIn.csproj|d:\\dswork\\aidata\\wordaddin\\wordaddin\\airibbon.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EC0A80FA-FCBD-4239-945A-627B20CCCBAA}|WordAddIn\\WordAddIn.csproj|solutionrelative:wordaddin\\airibbon.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{EC0A80FA-FCBD-4239-945A-627B20CCCBAA}|WordAddIn\\WordAddIn.csproj|D:\\dsWork\\aiData\\WordAddIn\\wordaddin\\referencegeneratorform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form", - "RelativeMoniker": "D:0:0:{EC0A80FA-FCBD-4239-945A-627B20CCCBAA}|WordAddIn\\WordAddIn.csproj|solutionrelative:wordaddin\\referencegeneratorform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form" - }, - { - "AbsoluteMoniker": "D:0:0:{EC0A80FA-FCBD-4239-945A-627B20CCCBAA}|WordAddIn\\WordAddIn.csproj|D:\\dsWork\\aiData\\WordAddIn\\wordaddin\\outlinesettingsform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form", - "RelativeMoniker": "D:0:0:{EC0A80FA-FCBD-4239-945A-627B20CCCBAA}|WordAddIn\\WordAddIn.csproj|solutionrelative:wordaddin\\outlinesettingsform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form" - } - ], + "Documents": [], "DocumentGroupContainers": [ { "Orientation": 0, @@ -22,46 +9,11 @@ "DocumentGroups": [ { "DockedWidth": 200, - "SelectedChildIndex": 1, + "SelectedChildIndex": -1, "Children": [ { "$type": "Bookmark", "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}" - }, - { - "$type": "Document", - "DocumentIndex": 0, - "Title": "AiRibbon.cs", - "DocumentMoniker": "D:\\dsWork\\aiData\\WordAddIn\\WordAddIn\\AiRibbon.cs", - "RelativeDocumentMoniker": "WordAddIn\\AiRibbon.cs", - "ToolTip": "D:\\dsWork\\aiData\\WordAddIn\\WordAddIn\\AiRibbon.cs", - "RelativeToolTip": "WordAddIn\\AiRibbon.cs", - "ViewState": "AgIAAPcAAAAAAAAAAAA1wAsBAABFAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2026-01-24T10:05:10.056Z", - "EditorCaption": "" - }, - { - "$type": "Document", - "DocumentIndex": 1, - "Title": "ReferenceGeneratorForm.cs [\u8BBE\u8BA1]", - "DocumentMoniker": "D:\\dsWork\\aiData\\WordAddIn\\WordAddIn\\ReferenceGeneratorForm.cs", - "RelativeDocumentMoniker": "WordAddIn\\ReferenceGeneratorForm.cs", - "ToolTip": "D:\\dsWork\\aiData\\WordAddIn\\WordAddIn\\ReferenceGeneratorForm.cs [\u8BBE\u8BA1]", - "RelativeToolTip": "WordAddIn\\ReferenceGeneratorForm.cs [\u8BBE\u8BA1]", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2026-01-24T10:05:02.111Z" - }, - { - "$type": "Document", - "DocumentIndex": 2, - "Title": "OutlineSettingsForm.cs [\u8BBE\u8BA1]", - "DocumentMoniker": "D:\\dsWork\\aiData\\WordAddIn\\WordAddIn\\OutlineSettingsForm.cs", - "RelativeDocumentMoniker": "WordAddIn\\OutlineSettingsForm.cs", - "ToolTip": "D:\\dsWork\\aiData\\WordAddIn\\WordAddIn\\OutlineSettingsForm.cs [\u8BBE\u8BA1]", - "RelativeToolTip": "WordAddIn\\OutlineSettingsForm.cs [\u8BBE\u8BA1]", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2026-01-24T10:04:59.465Z" } ] } diff --git a/WordAddIn/WordAddIn.sln b/WordAddIn/WordAddIn.sln index e0775fe..f10feb8 100644 --- a/WordAddIn/WordAddIn.sln +++ b/WordAddIn/WordAddIn.sln @@ -1,10 +1,12 @@ - + Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.14.36915.13 d17.14 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WordAddIn", "WordAddIn\WordAddIn.csproj", "{EC0A80FA-FCBD-4239-945A-627B20CCCBAA}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpsInstaller", "WpsInstaller\WpsInstaller.csproj", "{A1B2C3D4-E5F6-4789-0011-223344556677}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -14,7 +16,11 @@ Global {EC0A80FA-FCBD-4239-945A-627B20CCCBAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EC0A80FA-FCBD-4239-945A-627B20CCCBAA}.Debug|Any CPU.Build.0 = Debug|Any CPU {EC0A80FA-FCBD-4239-945A-627B20CCCBAA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EC0A80FA-FCBD-4239-945A-627B20CCCBAA}.Release|Any CPU.Build.0 = Release|Any CPU + {EC0A80FA-FCBD-4239-945A-627B20CCCBAA}.Release|Any CPU.Build.0 = Release|Any CPU + {A1B2C3D4-E5F6-4789-0011-223344556677}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1B2C3D4-E5F6-4789-0011-223344556677}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1B2C3D4-E5F6-4789-0011-223344556677}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A1B2C3D4-E5F6-4789-0011-223344556677}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/WordAddIn/WordAddIn/AiRibbon.cs b/WordAddIn/WordAddIn/AiRibbon.cs index e0b4059..a155147 100644 --- a/WordAddIn/WordAddIn/AiRibbon.cs +++ b/WordAddIn/WordAddIn/AiRibbon.cs @@ -132,7 +132,7 @@ namespace WordAddIn else if (ext == ".docx" || ext == ".doc") { // 使用 Word Interop 打开并读取文档内容 - dynamic wordApp = Globals.ThisAddIn.Application; + dynamic wordApp = AddInContext.CurrentApplication; dynamic doc = wordApp.Documents.Open(FileName: file, Visible: false, ReadOnly: true, AddToRecentFiles: false); content = doc.Content.Text; doc.Close(SaveChanges: false); @@ -174,7 +174,7 @@ namespace WordAddIn LoadingForm loading = null; try { - var doc = Globals.ThisAddIn.Application.ActiveDocument; + var doc = AddInContext.CurrentApplication.ActiveDocument; string fullText = doc.Content.Text; if (string.IsNullOrWhiteSpace(fullText) || fullText.Length < 10) @@ -230,7 +230,7 @@ namespace WordAddIn LoadingForm loading = null; try { - var selection = Globals.ThisAddIn.Application.Selection; + var selection = AddInContext.CurrentApplication.Selection; string originalText = null; // 1. 优先使用选区文本 @@ -313,7 +313,7 @@ namespace WordAddIn LoadingForm loading = null; try { - var selection = Globals.ThisAddIn.Application.Selection; + var selection = AddInContext.CurrentApplication.Selection; // 1. 判断是否有选中文本 bool hasSelection = selection.Type == Word.WdSelectionType.wdSelectionNormal || @@ -403,7 +403,7 @@ namespace WordAddIn LoadingForm loading = null; try { - var selection = Globals.ThisAddIn.Application.Selection; + var selection = AddInContext.CurrentApplication.Selection; // 1. 判断是否有选中文本或剪贴板内容 bool hasSelection = selection.Type == Word.WdSelectionType.wdSelectionNormal || @@ -489,7 +489,7 @@ namespace WordAddIn LoadingForm loading = null; try { - var selection = Globals.ThisAddIn.Application.Selection; + var selection = AddInContext.CurrentApplication.Selection; string originalText = selection.Text; // 可以为空,作为生成的上下文参考 string referenceContent = null; @@ -521,7 +521,7 @@ namespace WordAddIn // 尝试用 Word Interop 打开读取 (针对 .doc, .docx) try { - dynamic wordApp = Globals.ThisAddIn.Application; + dynamic wordApp = AddInContext.CurrentApplication; dynamic doc = wordApp.Documents.Open(FileName: path, Visible: false, ReadOnly: true, AddToRecentFiles: false); referenceContent = doc.Content.Text; doc.Close(SaveChanges: false); @@ -621,7 +621,7 @@ namespace WordAddIn LoadingForm loading = null; try { - var doc = Globals.ThisAddIn.Application.ActiveDocument; + var doc = AddInContext.CurrentApplication.ActiveDocument; string fullText = doc.Content.Text; // 1. 基础校验:文档内容太少则不处理 @@ -732,7 +732,7 @@ namespace WordAddIn LoadingForm loading = null; try { - var selection = Globals.ThisAddIn.Application.Selection; + var selection = AddInContext.CurrentApplication.Selection; string prompt = selection.Text; // 1. 尝试获取选区文本 @@ -869,8 +869,8 @@ namespace WordAddIn ? new OutlineStyleConfig() : JsonConvert.DeserializeObject(styleJson); - var doc = Globals.ThisAddIn.Application.ActiveDocument; - var selection = Globals.ThisAddIn.Application.Selection; + var doc = AddInContext.CurrentApplication.ActiveDocument; + var selection = AddInContext.CurrentApplication.Selection; Word.Range insertRange = selection.Range; insertRange.Collapse(Word.WdCollapseDirection.wdCollapseEnd); @@ -968,7 +968,7 @@ namespace WordAddIn client.DownloadFile(imageUrl, tempPath); } - var selection = Globals.ThisAddIn.Application.Selection; + var selection = AddInContext.CurrentApplication.Selection; var inlineShape = selection.InlineShapes.AddPicture(FileName: tempPath, LinkToFile: false, SaveWithDocument: true); // 强制将图片所在的段落设为“正文”样式 diff --git a/WordAddIn/WordAddIn/ThisAddIn.cs b/WordAddIn/WordAddIn/ThisAddIn.cs index cf97ac2..e43805b 100644 --- a/WordAddIn/WordAddIn/ThisAddIn.cs +++ b/WordAddIn/WordAddIn/ThisAddIn.cs @@ -15,7 +15,8 @@ namespace WordAddIn private void ThisAddIn_Startup(object sender, System.EventArgs e) { - // 在此添加初始化代码 + // 初始化全局上下文,供 AiRibbon 等使用 + AddInContext.CurrentApplication = this.Application; } private void ThisAddIn_Shutdown(object sender, System.EventArgs e) diff --git a/WordAddIn/WordAddIn/WordAddIn.csproj b/WordAddIn/WordAddIn/WordAddIn.csproj index 008899e..9e9e319 100644 --- a/WordAddIn/WordAddIn/WordAddIn.csproj +++ b/WordAddIn/WordAddIn/WordAddIn.csproj @@ -31,10 +31,10 @@ true False true - publish\ + D:\办公\ zh-chs - 1.0.0.1 + 1.0.0.5 true true 7 @@ -197,6 +197,15 @@ False true + + {AC0714F2-3D04-11D1-C2E4-00600893B433} + 1 + 0 + 0 + tlbimp + False + True + @@ -204,6 +213,9 @@ False + + True +