Skip to content

Remote Controls V2.3.0

Choose a tag to compare

@github-actions github-actions released this 22 Aug 06:51
· 272 commits to main since this release

自动构建发布 - 2025-08-22 07:28:10 UTC

更新内容
单实例与脚本模式体验重构
Full Changelog: V2.2.13...V2.3.0

🔐 单实例 / 互斥体机制

  • 新增 “互斥体 + 进程枚举” 双重校验:仅当真实存在其它运行实例才阻止启动,避免异常退出留下残留互斥体导致误报。
  • 脚本模式出现冲突时提供三选项原生对话框:
    • 是:尝试终止其它实例后继续启动。
    • 否:忽略互斥体直接继续(允许多开,记录警告日志)。
    • 取消:安全退出。
  • 结束其它实例时:逐个发送 terminate,等待最多 3 秒;仍存活则提示并终止当前启动,防止不确定状态。
  • 仅检测到“残留互斥体”且无其它实例时自动继续,并写入警告日志以便诊断。
  • 交互降级:若图形对话框创建失败,回退到原简单提示并退出,保证一致的安全行为。

🖥️ 控制台与提权一致性

  • 统一 main.py / tray.py / GUI.py 脚本模式启动自动隐藏控制台;设置环境变量 RC_NO_HIDE=1 可取消隐藏(便于调试)。
  • 提权重启逻辑重写:使用 ShellExecuteW(runas) 直接调用本虚拟环境 pythonw(可回退到 python),避免附带旧控制台窗口。
  • 启动提权副本后循环检测新进程是否出现,再退出旧进程,减少用户感知到的“闪退”或空白时间。

⚙️ 稳定性 & 维护

  • 避免因孤立互斥体阻塞启动,提升异常恢复能力。
  • 多开 / 强制继续 / 终止其它实例的每一种路径都会记录清晰日志,便于线上问题复盘。
  • 逻辑同时兼容脚本模式与打包为 EXE 的运行场景;不影响现有 CI / 安装器流程。

📦 版本与构建

  • 延续 2.2.13 引入的“完全动态版本”机制,2.3.0 无需新增硬编码或额外构建步骤。
  • 版本信息仍集中于 version_info.py,安装器通过临时脚本注入版本保持一致性。

🪄 用户可感知改进

  • 明显减少“程序已在运行”误报场景。
  • 赋予用户可控的实例冲突处理选项,提升容错与自救能力。
  • 提权 / 重启流程更加平滑,避免界面闪烁与不确定等待。


相关文档: