Repository navigation
v2.0.0
WinTray 2.0 带来了全新的启动任务调度、窗口处理和控制台程序托盘托管能力,进一步提升复杂开机自启场景下的稳定性与可控性。
主要更新
错峰启动
- 按受管程序列表顺序依次启动程序。
- 默认启动间隔为 3 秒,可在全局设置中调整为 0–120 秒。
- 已暂停、已运行、校验失败或启动失败的程序不会额外占用启动间隔。
- 窗口检测、关闭延迟和外部自启等待均在后台并行执行,不会阻塞后续程序启动。
- “立即启动”不受错峰启动间隔影响。
- 仅对 WinTray 实际启动的程序进行错峰,不会修改 Windows 或其他程序已有的自启动配置。
外部自启动检测
- 自动检测直接指向目标程序的 Windows
Run注册表自启项。 - 支持检测
HKCU、HKLM以及 32 位注册表项。 - 尊重任务管理器中的自启动禁用状态。
- 检测到程序由系统自启动时,WinTray 会等待现有实例,而不是再次启动,避免重复运行。
- 等待超时后不会强制补启动,并会在日志中记录原因。
单程序关闭延迟
- 每个受管程序可单独设置关闭延迟,范围为 0–600 秒。
- 延迟从目标进程创建时开始计算。
- 同时适用于 WinTray 启动的程序,以及程序自身开机自启动的实例。
- 适合处理先显示登录窗口、启动窗口或更新窗口的程序。
- 例如新版 QQ 可以等待登录完成后,再处理主面板,避免关闭登录窗口导致 QQ 退出。
控制台程序托盘托管
- 自动识别控制台类型的
.exe程序。 - 对
syncthing.exe、frpc.exe等没有原生托盘图标的程序,隐藏控制台窗口并由 WinTray 提供托盘图标。 - 支持通过托盘菜单显示或隐藏程序窗口、结束托盘托管但保持程序运行,以及退出程序。
- 所有托管图标由 WinTray 主进程统一管理。
- 开启“任务完成后自动退出”时,只要仍有托管程序,WinTray 会隐藏设置窗口和自身图标并继续后台运行;最后一个托管结束后才退出。
- 手动退出 WinTray 时,会先恢复被隐藏的程序窗口。
UI 与交互改进
- 重构 Windows 原生 UI 布局。
- 简化主窗口结构,优化程序列表和设置项排列。
- 优化中文文案并统一功能术语。
- 更新界面预览图和项目说明文档。
- 自动退出模式下重新运行 WinTray,可打开已有实例的设置窗口,不会创建重复进程。
稳定性改进
- 修复进程匹配、窗口匹配和启动恢复过程中的竞态条件。
- 改进控制台窗口识别和托盘托管流程。
- 修复托盘托管进程退出、窗口恢复及自动退出相关问题。
- 改进日志文件的并发写入、文件锁和日志轮转处理。
- 修复多进程同时写日志时可能出现的冲突。
- 增强单实例、IPC 激活、启动队列和退出流程的可靠性。
- 增加启动策略、窗口匹配、托盘托管、日志并发和恢复流程的测试覆盖。
配置兼容性
- 旧版本配置可以继续使用。
- 缺少
startupIntervalSeconds的旧配置会自动使用默认值 3 秒。 - 新增的关闭延迟默认关闭,不会改变已有程序的窗口处理行为。