SystemInformer 工具提示弹得太快挡视线?3 处开关快速关闭悬停提示
【免费下载链接】systeminformerA free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware. Brought to you by Winsider Seminars & Solutions, Inc. @ https://windows-internals.com项目地址: https://gitcode.com/GitHub_Trending/sy/systeminformer
SystemInformer(System Informer,一款 Windows 系统监控工具)的悬停工具提示是新手最常抱怨的干扰源:鼠标在进程列表里走两步,小弹窗就贴过来盖住正在看的列。想关掉它,其实只需要找到 3 处对应的设置开关:选项对话框里的即时提示复选框、注册表里的两个 DWORD 值,以及源码里的默认值。
先还原一下被提示挡住的现场
你在 Processes 页分析一棵有几十个子节点的进程树,鼠标从某个进程条目扫到另一个条目,每扫一个,一个小文本框就立刻贴上来,遮住后面的列标题。你想快速横向比较几个进程的内核时间和 CPU,视线反复被这个弹窗截断。
或者你在做录屏,提示框每次弹出都会出现在画面里,观感很乱。这两个场景背后是同一个问题:提示的"弹出时机"太积极,而 SystemInformer 把这件事拆成了两层开关,先搞懂它再动手。
工具提示为什么弹得这么快:两层开关加一个延迟旋钮
SystemInformer 把提示拆成了两件事。第一层是"要不要给单元格生成提示文本",由设置项EnableTooltipSupport控制,默认值 1(生成)。进程树里每个条目的提示文本是在你悬停时才现场组装的——查询系统信息、格式化版本与签名数据,文本还会缓存一段时间避免重复生成,生成逻辑在 SystemInformer/proctree.c(约 4873 行处)和 SystemInformer/itemtips.c。
第二层是"提示什么时候弹出来",由EnableInstantTooltips控制,默认 0。打开它后,程序会把 Windows 工具提示控件的弹出延迟直接设成 0,鼠标刚进单元格提示就出现;关掉时则保留标准等待时间。源码里的做法就一行,来自 SystemInformer/proctree.c:
SendMessage(TreeNew_GetTooltips(ProcessTreeListHandle), TTM_SETDELAYTIME, TTDT_INITIAL, 0);TTM_SETDELAYTIME这条消息就是设置"鼠标悬停多久后提示才弹出"的旋钮,传 0 就是立刻弹。两个开关的宏定义都在 SystemInformer/include/phsettings.h(EnableInstantTooltips在第 242 行,EnableTooltipSupport在第 290 行)。
第一层:选项对话框里关掉即时提示(适合所有用户)
适合不想碰注册表、只想让提示慢下来的人。
- 在 SystemInformer 主窗口右上角点开 Options(选项)对话框,选中 General 页。
- 在列表里找到Show tooltips instantly这一行——它对应的就是
EnableInstantTooltips设置,源码里注册这行的位置见 SystemInformer/options.c(第 1628 行)。 - 取消勾选,点 OK。
改完能看到什么效果:鼠标划过进程树、Services 或 Networks 列表时,提示不再立刻跟着鼠标出现,需要停留一会儿才弹。这一步改的是"弹出时机",提示本身还在;它适合"想要提示、但不想被它打断"的情况。注意:如果你的诉求是提示一个都不要,光做这一步不够,往下看。
第二层:注册表里两个 DWORD(适合想要提示完全消失的用户)
适合嫌提示烦、希望它们干脆不出现,或者想批量应用到多台机器的人。
SystemInformer 的选项保存在注册表HKEY_CURRENT_USER\Software\SystemInformer下(源码中的键名定义见 phlib/settings.c)。用 regedit 打开这个键,直接看或新建两个值:
EnableInstantTooltips(DWORD,32 位),设为0:提示不再即时弹出。EnableTooltipSupport(DWORD,32 位),设为0:列表条目不再生成提示文本,进程树、模块列表、服务列表等位置的提示全部消失。
EnableTooltipSupport在界面上找不到对应复选框,只能在注册表或配置文件里改,这是它和第一个开关的区别。改完EnableInstantTooltips即时生效;改EnableTooltipSupport需要完全退出再启动一次程序。动手前可以先把这个注册表项导出留底,方便回退。
第三层:改源码默认值再重新编译(适合开发者)
适合要把"默认无提示"打包进自己分发的版本的人。
默认值集中写在 SystemInformer/settings.c(第 87 行):
PhpAddIntegerSetting(SETTING_ENABLE_TOOLTIP_SUPPORT, L"1");把L"1"改成L"0",重新编译后的版本就默认不生成提示文本。同文件第 42 行的SETTING_ENABLE_INSTANT_TOOLTIPS默认已经是L"0"(即时提示默认关闭),不用动。要重新构建,先拿到源码:git clone https://gitcode.com/GitHub_Trending/sy/systeminformer,然后按 HACKING.md 里的构建说明走一遍。
改完能看到什么效果:任何机器上首次运行都没有提示,而且选项界面里没有开关能直接恢复它——这是刻意的取舍,恢复只能靠注册表把值改回 1 或再改源码。
怎么验证真的生效了,以及 5 个常见坑
验证方法很简单:把鼠标放到 Processes 页某个进程条目上停 3~5 秒。没反应,说明EnableTooltipSupport关到位了;过一会儿才弹,说明只是关了即时弹出,提示还在。再打开注册表确认EnableInstantTooltips等于 0,防止被界面勾选状态写回去。
几个容易踩的坑:
- 键名是驼峰的
EnableInstantTooltips、EnableTooltipSupport,别写成源码里的宏名SETTING_ENABLE_INSTANT_TOOLTIPS,写错等于没改。 EnableInstantTooltips的值方向是 1 开 0 关,很多人想关结果改成了 1,提示弹得比原来还快。EnableTooltipSupport只在程序启动时读取一次(读取位置在 SystemInformer/mainwnd.c),改完不重启会以为没生效。- 注册表路径是
HKEY_CURRENT_USER\Software\SystemInformer,不是 HKLM,也不是别的产品名。 - Windows 系统设置的"悬停显示简单工具提示"开关管不到 SystemInformer 的自绘提示,别去那边找。
- 插件页面的图表提示(GPU 负载、温度这类)是插件自己的开关,比如
WmiProviderEnableTooltipSupport,上面两个设置管不到它,要去对应插件的选项里关。
按你的使用场景对号入座
| 使用场景 | EnableInstantTooltips | EnableTooltipSupport | 改哪里最省事 |
|---|---|---|---|
| 日常监控,偶尔想查进程信息 | 0 | 1 | 选项对话框取消勾选 Show tooltips instantly |
| 录屏 / 教学演示 | 0 | 0 | 注册表两个值都设为 0 |
| 长时间盯性能图表分析 | 0 | 0 | 同上 |
| 自己编译分发、默认就要干净界面 | 0 | 0 | 源码默认值改 0,其余靠注册表 |
插件自带的图表提示是独立的开关(如 WMI Provider 的WmiProviderEnableTooltipSupport),演示前记得单独去插件选项里关一遍。
为什么这么设计
提示系统被拆成"生成"和"弹出"两层,生成侧每个列表各自决定给单元格拼什么文本,弹出侧统一交给 Windows 的延迟机制,插件还能通过回调往提示里追加自己的内容。这种"显示什么"和"什么时候显示"分离的做法,是 SystemInformer 整个可配置体系的缩影——你调到的从来不是某个写死的行为,而是两层各自暴露出来的旋钮。
【免费下载链接】systeminformerA free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware. Brought to you by Winsider Seminars & Solutions, Inc. @ https://windows-internals.com项目地址: https://gitcode.com/GitHub_Trending/sy/systeminformer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考