Repository navigation
Releases: OUBIGFA/WinTray
Releases · OUBIGFA/WinTray
Release list
v3.3.2
WinTray 3.3.2 让收纳更安全:WinTray 被强制结束后,被收纳的托盘图标会自动恢复。
主要更新
收纳图标自动恢复
- 以前用任务管理器强制结束
WinTray.exe,被收纳的托盘图标会一直消失,只能重启对应程序找回。 - v3.3.2 起,WinTray 随主程序运行一个独立的恢复进程。主程序被强制结束后,它把仍在运行的程序的原图标显示回来;程序自己隐藏或删除的图标保持原状态。
- 恢复进程随主程序启动,恢复完成或正常退出后结束。同时结束整个进程树(同时结束主程序与恢复进程)时无法自动恢复。
- 解压后请保持
WinTray-Recovery.exe与主程序在同一文件夹。该文件缺失时,WinTray 不会隐藏原图标。
问题修复
- 修复部分程序在重复注册托盘图标被拒绝后,不再响应后续托盘操作的问题(例如基于 Flutter 的程序)。升级后请正常退出并重新打开这些程序一次,之后不再需要。
配置兼容性
- 旧版
settings.json可以直接使用。
版本对比
| 项目 | v3.3.1 | v3.3.2 |
|---|---|---|
| 强制结束 WinTray | 被收纳图标消失,需重启程序 | 自动恢复原图标 |
| 托盘图标重复注册 | 部分程序此后不再响应托盘操作 | 已修复 |
v3.3.1
WinTray 3.3.1 新增对启动器程序的支持,并修复任务栏残留按钮的问题。
主要更新
支持启动器程序
- 某些程序的实际主程序与入口启动器同名,位于启动器的子目录中。
- WinTray 以前只按完整路径比对,认不出这种程序。v3.3.1 起,两个文件的签名证书一致时即可识别,启动窗口可以正常收起。
- 无法确认这种关系时,请在列表中添加实际运行的主程序
.exe。
问题修复
- 修复部分程序启动后,任务栏残留一个点击无响应的程序按钮。
配置兼容性
- 旧版
settings.json可以直接使用。
版本对比
| 项目 | v3.3.0 | v3.3.1 |
|---|---|---|
| 启动器程序 | 认不出子目录中的同名主程序 | 签名证书一致即可识别 |
| 任务栏按钮 | 部分程序启动后可能残留无响应按钮 | 已修复 |
v3.3.0
WinTray 3.3.0 把界面从 walk 迁移到 mygo 自绘,并更新了启动顺序。
主要更新
界面迁移:walk → mygo
- 旧版界面由 walk 的布局控件搭建,v3.3.0 改用 mygo 自绘渲染。
- 收益:程序多时打开界面不再卡顿;关闭设置窗口后释放界面内存,后台占用更低。
- 设置项、界面语言和用法保持原样。
启动顺序改用“序号”
- 启动顺序改用“序号”列:选择数字,程序移动到该位置。不再用拖动排序。
配置兼容性
- 旧版
settings.json可以直接使用。 - 源码构建需要 Go 1.27.1 或更高版本。
版本对比
| 项目 | v3.2.1 | v3.3.0 |
|---|---|---|
| 界面渲染 | walk 布局控件 | mygo 自绘 |
| 调整启动顺序 | 在列表中拖动 | 选择“序号” |
| 后台占用 | 关闭设置窗口后仍占内存 | 释放界面内存 |
v3.2.1
WinTray 3.2.1 减少后台运行的开销,并让托盘收纳下的任务栏操作更跟手。
主要更新
不显示窗口时不再创建界面
- 后台启动、开机启动后不弹窗时,只保留托盘和消息窗口,打开"更多功能"时才创建界面。
- 登录启动更快,常驻占用更低。
任务栏操作更跟手
- 托盘收纳的鼠标处理改用独立线程,不再与后台程序扫描、日志写入相互等待,任务栏图标的拖拽排序与点击更跟手。
- 一次收纳多个程序时共用一次扫描,收纳更快。
问题修复
- 打开设置失败时会给出提示,不再点了没有反应。
- 消除多处空指针风险,长时间运行更稳定。
版本对比
| 能力 | v3.2.0 | v3.2.1 |
|---|---|---|
| 后台运行时的界面 | 启动时完整创建 | 打开"更多功能"时才创建 |
| 任务栏鼠标操作 | 与后台扫描共用线程 | 独立线程,互不影响 |
v3.2.0
WinTray 3.2.0 新增自动运行次数限制,可让程序在最近一段时间内只自动启动指定次数。
主要更新
限制自动运行次数
- 每个程序可单独开启:最近 1–365 天内最多自动运行 1–1000 次,默认不启用,启用时默认 1 天 1 次。
- 按最近天数滚动计次(1 天 = 24 小时),重启或跨午夜都不清零;用满后不再自动启动。
- 只约束开机自动运行,手动打开和"立即启动"不受限。
- 启用后接管程序原有的开机自启,关闭限制后恢复原有安排;需要管理员权限的任务首次会请求一次确认。
问题修复
- 修复开启"托盘收纳"后,任务栏图标无法拖动排序的问题。
配置兼容性
- 旧版
settings.json直接可用,次数限制默认关闭。
版本对比
| 能力 | v3.1.0 | v3.2.0 |
|---|---|---|
| 自动启动 | 每次开机都会启动 | 可限定最近 N 天内最多自动运行 M 次 |
v3.1.0
WinTray 3.1.0 新增托盘图标收纳,并支持按程序接管开机启动,开机时的窗口与图标都由 WinTray 统一管理。
主要更新
托盘收纳
- 把指定程序已有的托盘图标从任务栏收进 WinTray 菜单:菜单沿用程序当前的图标和名称,左键等同单击原图标,右键打开程序自身的托盘菜单。
- 需 Windows 11,仅支持
.exe。 取消勾选或退出 WinTray 时恢复原图标,收纳失败会尽量还原并记入日志。 - 有程序启用托盘收纳时,WinTray 不再自动退出,并保留自己的菜单入口。
开机即启动
- 新增第四种启动方式:只替换程序的开机触发方式,保留原自启的参数、静默行为和管理员权限;已有登录任务直接复用,不会重复启动。
- 不参与错峰,在 WinTray 与桌面就绪后立即启动;新建管理员任务首次需确认一次。
- 原入口缺失、被禁用或命令有歧义时直接报错,不猜测、不降级;这类程序请改用“正常启动”。
- 暂停、移除程序或关闭 WinTray 自启时,替代任务被删除、启用状态还原,程序自身的自启不受影响。
自定义时间
- 每个程序可单独设置:开机后 0–1440 分钟启动,运行满 0–1440 分钟后连同子进程一起退出(默认 30,0 表示不退出)。
启动顺序
- 直接拖动程序即可调整开机启动顺序,错峰间隔按新顺序生效。
稳定性改进
- “收进托盘”改为先隐藏窗口、到点再收起,保留程序原生托盘状态;收起失败或中途取消时窗口恢复可见。
- 更新检查按语义化版本规则比较(含预发布后缀与构建元数据),不再误判版本新旧。
配置兼容性
- 旧版
settings.json直接可用,无需迁移:托盘收纳与“开机即启动”默认关闭,自定义时间默认不启用(自动退出默认 30 分钟)。 - 关闭 WinTray 自启或取消勾选程序时,只停止 WinTray 的启动安排,程序自身的自启会保留或恢复。
版本对比
| 能力 | v3.0.0 | v3.1.0 |
|---|---|---|
| 托盘图标 | 仅为无图标的命令行程序代为提供 | 可把程序已有的托盘图标收进 WinTray 菜单 |
| 开机启动 | WinTray 统一拉起列表程序 | 新增“开机即启动”,可接管程序原有自启入口 |
| 定时 | 无 | 可设定时启动与运行满时长后自动退出 |
| 启动顺序 | 按添加顺序 | 拖动调整 |
v3.0.0
WinTray 3.0.0 重构了界面与交互,并系统优化了开机自启与后台运行,开机整理更快、更可靠。
主要更新
全新界面与交互重构
- 主窗口拆分为开机启动项列表与设置两页,日常操作集中在列表页,设置项按开机启动、启动节奏、故障排查分组。
- 列表勾选框控制该程序开机时是否启动;新增“启动方式”列,一眼看清每个程序的处理方式。
- 每个程序的启动方式由原来的多个复选框改为三选一,互斥选项不再冲突:正常启动、收进托盘(可设收起前等待 0–600 秒,用于 QQ 这类先弹登录窗的程序)、后台启动。
- 设置页每项一行:左侧名称与说明,右侧控件;依赖项随主开关自动灰显,窗口按内容自适应高度,超出屏幕时可滚动。
- 点击窗口空白处会先提交正在编辑的内容,再清空选中;托盘右键菜单改用系统原生菜单。
开机自启改用登录计划任务
- 自启方式由
Run注册表项改为当前用户级登录计划任务(登录触发、最低权限、无需管理员),在登录瞬间启动,早于资源管理器逐项拉起的Run自启项,确保赶在受管程序之前就位;系统不接受时自动退回Run。 - 两个自启入口互斥,只保留一个,避免 WinTray 被启动两次。
- 未开启开机自启时列表页直接提示并可一键开启;故障排查新增“删除登录计划任务”。
静默后台运行
- 设置页底部与托盘右键菜单新增“后台静默运行”:隐藏设置窗口和 WinTray 自身图标,保留 syncthing、frpc 等托管程序图标;没有托管时立即退出,有托管时等最后一个结束再退出。再次运行
WinTray.exe即恢复。
稳定性改进
- 等待程序自启的超时由 120 秒延长到 300 秒。
- 计划任务可能在任务栏就绪前启动 WinTray,托盘图标创建失败改为自动重试,期间受管程序照常处理。
- 自启注册改为串行写入:反复切换开关或紧接着退出程序时,按最后一次请求生效,不留残留项。
配置兼容性
- 旧版
settings.json直接可用,本次无配置字段变化,无需迁移。 - 升级后首次运行会按当前设置重建自启:新建登录计划任务并删除旧的
Run项。
版本对比
| 能力 | v2.0.0 | v3.0.0 |
|---|---|---|
| 主界面 | 设置与程序列表混排一页 | 列表页与设置页分离 |
| 开机自启 | HKCU 的 Run 注册表项 |
用户级登录计划任务,失败时回退 Run |
| 后台运行 | 仅“任务完成后自动退出” | 新增可随时进入的静默后台运行 |
| 等待程序自启的超时 | 120 秒 | 300 秒 |
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 秒。 - 新增的关闭延迟默认关闭,不会改变已有程序的窗口处理行为。