from pathlib import Path import os import difflib for root in (Path('C:/wechat_rpa'), Path('C:/kefu/wechat_rpa')): p = root / 'wechat_gui_qt.py' s = p.read_text(encoding='utf-8') s = s.replace(' guard = DesktopInstanceGuard()\n activation_timer = None\n try:\n try:\n primary = guard.acquire()', ' guard = None\n activation_timer = None\n try:\n try:\n guard = DesktopInstanceGuard()\n primary = guard.acquire()', 1) s = s.replace(' guard.close()\n\n\ndef _run_desktop_session', ' if guard is not None:\n guard.close()\n\n\ndef _run_desktop_session', 1) s = s.replace(' self._close_minimized = True\n self._tray_hidden = False', ' if not self.isVisible() or self.capsule.isVisible():\n self.expand_console()\n self._close_minimized = True\n self._tray_hidden = False', 1) s = s.replace(' def changeEvent(self, event) -> None:\n if event.type() == QEvent.Type.WindowStateChange and hasattr(self, "_scale_timer"):', ' def changeEvent(self, event) -> None:\n if (event.type() == QEvent.Type.WindowStateChange and not self.isMinimized()\n and not getattr(self, "_tray_hidden", False)):\n self._close_minimized = False\n if event.type() == QEvent.Type.WindowStateChange and hasattr(self, "_scale_timer"):', 1) compile(s, str(p), 'exec') t = p.with_suffix('.tray.tmp') t.write_text(s, encoding='utf-8') os.replace(t, p) old = (root / 'backups/single-instance-tray-20260917/wechat_gui_qt.py').read_text(encoding='utf-8') diffname = 'production-qt.diff' if root == Path('C:/wechat_rpa') else 'source-qt.diff' (Path(__file__).parent / diffname).write_text(''.join(difflib.unified_diff(old.splitlines(True), s.splitlines(True), fromfile='before/wechat_gui_qt.py', tofile=str(p))), encoding='utf-8')