讨论 ProcHub 启动后没窗口也没托盘图标,只能任务管理器结束

启动后没窗口也没托盘图标,只能任务管理器结束

DreamerZ 发表于    阅读:64    回复:1

双击启动之后什么反应都没有,没窗口也没托盘图标,任务管理器里能看到进程在,只能强制结束。这个是什么问题?

评论

确有其事,是真实缺陷,下个版本修复。

链路是:Wails v2 的 Windows 单实例锁在某些情况下会放行第二个实例,第二个实例跟首实例共用了 WebView2 的用户数据目录,WebView2 初始化直接报 ERROR_INVALID_STATE,然后 go-webview2 的自旋消息循环因为失败回调没置位、也没有退出条件,就永久卡死了。而且它卡在 OnStartup 之前,所以没窗口、没托盘图标、也没有启动日志,只能去任务管理器结束进程 —— 跟你反馈的表现完全一致。主要触发场景是以管理员和普通身份混用,权限/完整性级别不一致。

修复是在 wails.Run 之前加了一层进程级守卫:先通过已有的控制通道判断是不是已经有实例在跑,有的话让首实例把窗口显示出来,然后自己退出,第二个实例根本走不到 WebView2。同时新增了 POST /control/show 控制接口和 single-instance 诊断日志,下次再遇到可以直接在数据目录的 system_logs/ 里查。

另外提醒一下:如果快捷方式勾了「以管理员身份运行」,建议取消,这是最容易触发权限不一致的场景。

 
1
我来评论
QQ
微信
客服