Traffic Monitor 阻止关机问题的解决方案

通过任务计划程序,在关机时强制终止 Traffic Monitor.exe 程序,以应对 Windows 11 中 Traffic Monitor 主窗口阻止关机的 Bug。

前情提要

最近用 Windhawk 把 Windows 11 的任务栏挪到了左边,导致 Traffic Monitor 的任务栏窗口无法正常显示,于是我就把它改成了主窗口显示。但是主窗口显示功能在 Windows 11 上有 Bug,会阻止关机,必须手动点击仍要关机按钮才能正常关机。

我本来想换一个系统监控软件,毕竟 Traffic Monitor 已经很久没更新了,但是找了一圈后发现同类软件没有一个能打的。

  • HWiNFO 的任务栏图标太小了,而且不能显示指标名称。
  • Taskbar Monitor 也无法在任务栏中正常显示。
  • TrayS 功能上与 Windhawk 重合,可能有冲突。
  • XMeters 免费版只能3秒钟刷新一次。
  • Run Cat 只能显示 CPU 占用,不过最后我还是留下了它,毕竟谁又能拒绝任务栏里有一只奔跑的猫猫呢?

我又开始寻找这个Bug的修复方法,最终在TM的Issue中找到了通过创建计划任务在关机时强制终止 Traffic Monitor 进程的方法。

但是上面的方法使用的触发器(6006、1073、1074事件)在我的系统(24H2)上不能达到预想的效果,关机时仍然会卡在 Traffic Monitor 阻止关机的页面,Traffic Monitor.exe 未被终止。此时如果取消关机,回到桌面,上述触发器才会被触发。我通过事件查看器发现,上述3个事件发生的时间要比 Traffic Monitor.exe 试图否决关机的时间晚 1 秒钟,导致关机时触发失败。于是我尝试直接使用 Traffic Monitor.exe 试图否决关机的事件(10001)来作为触发器,测试后达到预期效果。

这个方法仍有一个小瑕疵,当点击关机按钮时,Traffic Monitor 阻止关机的页面会一闪而过,不过不影响关机。

详细步骤

  1. 在任务栏开始按钮右键,打开计算机管理
  2. 事件查看器-Windows 日志-应用程序中查找 Traffic Monitor 阻止关机的事件,记录日志名称、来源和事件 ID。
  3. 在任务计划程序中创建任务
  4. 输入名称,勾选使用最高权限运行
  5. 切换到触发器标签页,新建触发器。
    1. 将开始任务设置为发生事件时
    2. 日志选择应用程序,这个选项在最底下,打开下拉菜单可以后直接按End键跳转。
    3. 源选择 Winsrv,直接输入就能在下拉菜单中快速跳转。
    4. 事件 ID 填写 10001
  6. 切换到操作标签页,新建操作。
    1. 在程序或脚本中填写taskkill
    2. 在添加参数中填写/f /im TrafficMonitor.exe

参考:关机显示阻止关机问题 · Issue #998 · zhongyang219/TrafficMonitor · GitHub