任务栏叠加层将任务栏上的叠加图标与游戏上的 OSD 相结合,以显示实时系统状态和指标。
基于查询和参数的实时仪表盘可以有效地构建、筛选和自动更新性能数据。
MSI Afterburner 和 RivaTuner Statistics Server 提供高度可配置的叠加层,可作为设计您自己的系统的实用参考。
蜜蜂 WindowsWPF 和 Electron 可以轻松创建覆盖层、跳转列表、按钮缩略图和视觉状态,而无需向游戏中注入代码。
骑 带有实时系统数据的任务栏叠加层 在Windows系统中,它属于那种一旦你尝试过就再也离不开的东西。学习 查看隐藏的系统数据 这使得利用该叠加层变得更加容易。无需最小化游戏,即可直接在屏幕或任务栏图标上查看 CPU 和 GPU 使用率、温度、帧率或功耗,这对于游戏玩家和那些使用高负载应用程序将电脑性能发挥到极致的用户来说都意义重大。
此外,如果你的想法是创造自己的 Windows 覆盖应用程序例如,要实现一个类似卡组追踪器的监控系统,使其能够全屏显示在游戏画面上,而无需触碰或向可执行文件注入代码(以避免被封禁),你需要结合多种技术:Direct3D 中的叠加层、叠加在任务栏上的图标、实时数据面板,当然还有像 MSI Afterburner 和 RivaTuner 这样的监控工具。
什么是任务栏覆盖层?它与游戏中的覆盖层有何关联?
当我们谈论 Windows 中的任务栏叠加层 我们实际上是将两个非常相关但又不同的概念混为一谈:一方面是任务栏本身的信息叠加(图标、状态、带按钮的缩略图、进度指示器……),另一方面是我们在全屏模式下玩游戏或使用应用程序时屏幕上显示的信息层。
第一组包括 Windows 系统原生允许在任务栏中显示的所有应用程序图标: 覆盖图标按钮上的进度条、跳转列表、缩略图工具栏以及闪烁效果可以吸引用户的注意力。这些功能可以通过 API 进行控制,例如: 任务栏项目信息 在 WPF 或 Win32 任务栏 API 以及 Electron 等框架中,它们可以通过高级方法访问。
第二组包括 OSD(屏幕显示)叠加层,也就是您使用时看到的内容。 RivaTuner Statistics Server 与 MSI Afterburner 配合使用一个半透明面板,直接在游戏画面上方显示温度、帧率、CPU 和 GPU 负载等信息。该图层不会修改游戏的可执行文件;而是接入渲染管线(通常是 Direct3D 或 Vulkan),将相关信息绘制在游戏画面之上。
一个好的系统之美在于将这两方面结合起来: 游戏过程中屏幕上显示的数据以及任务栏中的持久状态 当您最小化或切换窗口时,它能让您随时快速了解电脑状态。您可以把它想象成一个永久的“通知灯”,但它会显示来自……的数据。 硬件.
用于在 Windows 中创建覆盖层的框架和 API,无需注入代码
如果你想开发一款能与全屏游戏完美兼容且不会导致账号被封禁的叠加应用,根据你选择的编程语言和技术栈,你可以选择多种技术方案。拥有相关经验者优先考虑。 C#、C++ 或 Go 您可以同时使用原生 API 和更高级别的框架。
在经典的微软桌面生态系统中,与任务栏交互的最简洁方式是使用 WPF 和 TaskbarItemInfo此类允许您设置诸如以下属性。 Overlay接受一个 System.Windows.Media.ImageSource 并在右下角的应用图标上绘制一个小图像。这非常适合显示…… 系统状态 (例如,当温度超过某个阈值时显示红色图标)而无需在通知区域添加额外的图标。
在更多混合环境中,例如 应用 采用网络技术构建的桌面电脑, 电子 它提供了一套相当全面的 API,这些 API 的设计初衷就是为了充分利用 Windows 任务栏:你可以使用它们创建跳转列表。 app.setUserTasks使用按钮配置缩略图 BrowserWindow.setThumbarButtons定义叠加图标 BrowserWindow.setOverlayIcon 并用 BrowserWindow.flashFrame所有这些都使你能够创建一个 任务栏中的控制面板 已链接到您的叠加层。
如果你的主要目标是防止向游戏进程注入恶意代码,那么该策略就涉及使用以下机制: 外部数据采集 (例如,通过读取系统计数器, 日志 或者使用公共 API),并在始终置顶的浮动窗口中绘制叠加层,或者通过使用已记录的图层来连接图形后端。RTSS 等工具正是如此:它们与 Direct3D 集成,但其目的是监控游戏,而不是操控游戏。
实时仪表盘:数据仪表盘概念
如果我们考虑一个设计精良的任务栏叠加层,它本质上是一种…… 实时数据面板微软在其分析解决方案(基于 Kusto / KQL)中使用的“仪表板”概念非常契合:一组可视化图表(图块或图标),这些图表由对一个或多个数据源的查询提供数据。
在这些类型的系统中,每个面板“图标”都由一个 Kusto 查询 (KQL) 和一个显示配置(折线图、柱状图、表格等)支持。从概念上讲,您的叠加层也可以采用相同的方式工作:您想要显示的每个字段(GPU 温度、FPS、延迟、内存使用率)都对应于一个 Kusto 查询 (KQL) 和一个显示配置(折线图、柱状图、表格等)。 向数据源发出查询 并以某种方式表示(简单的文本、小图形、状态颜色……)。
这些面板通常允许 整理页面上的图标这意味着可以设置不同的配置文件或视图:一个用于游戏,一个用于视频编辑,还有一个用于诊断。它们还支持导出为 JSON 格式,方便您将面板视为一个配置对象,从而可以进行版本控制、共享或恢复。
这些实时仪表盘背后的理念包含几个关键要素,您应该将其复制到您的叠加系统中:明确的数据源定义、完善的查询、筛选参数、组织页面以及…… 自动更新设置 它控制着数据请求的频率。
准备环境:启用实时仪表板和数据源
如果您使用 Microsoft Fabric 或 Azure 数据资源管理器之类的平台作为灵感来源(甚至用作后端),第一步通常是激活 实时仪表盘功能 在租户设置中。从管理门户找到“租户设置”部分,并启用“创建实时仪表板”选项,该选项允许用户从特定工作区定义基于 KQL 的仪表板。
一旦获得全球许可,该流程便开始。 创建面板 在相应的工作区中。有多种方法可以实现这一点:您可以从界面创建空白仪表板,从现有查询生成仪表板,甚至可以从之前导出的 JSON 文件导入。之后,面板将成为您放置所有监控图标的中心位置。
了解如何让 Chrome 浏览器在关闭前发出警告下一个支柱是 可重用数据源在这些面板的逻辑中,数据源本质上是对同一工作区内 Kusto 数据库的引用。多个图标可以使用同一个数据源,但查询语句可以不同。具体到任务栏叠加层,这意味着您可能有一个“本地团队”数据源用于收集系统指标,另一个“游戏日志”数据源用于收集远程统计数据,还有一个“云服务”数据源用于收集远程统计数据。
在实际操作层面,您可以在特定选项卡中选择数据源类型,并将其与图标分开设置。这样,您可以更改凭据、名称,甚至数据库,而无需重新配置每个图块。如果您以后想要升级叠加系统而不影响用户体验,这将非常有用。
面板编辑模式:图标、查询和参数
实时面板的核心在于它的 编辑模式在这里,您可以自定义整个仪表盘:添加新图标、定义 KQL 基本查询、输入参数以及调整视觉呈现方式。通常,点击界面右上角的“编辑”按钮即可进入此模式。
工具栏上的“主页”选项卡集中了设计操作:添加图标、创建可重用的基础查询,或声明可用于筛选数据的新参数(例如,时间范围或特定团队的标识符)。“管理”选项卡则负责处理…… 数据源和自动更新定义可视化效果的刷新频率。
要向面板添加新的“窗口”或图标,通常需要遵循以下清晰的步骤:首先,单击画布上的“添加图标”或顶部菜单中的“新建图标”;然后,在查询面板中,选择数据源,编写用于生成信息的 KQL 查询,并运行该查询以查看结果。接下来,创建一个 相关视觉对象 然后对这些结果(折线图、柱状图、表格等)进行格式化。
可视化的格式选项卡允许您选择 显示类型您可以自定义坐标轴、标题、系列、参考线、对数或线性刻度,甚至可以决定是否隐藏图块标题。满意后,接受更改并保存面板,即可记录新图标及其行为。
另一种非常方便的添加图标的方法是直接从……添加。 KQL 查询集打开查询文件,写入查询语句,执行查询,如果结果令人满意,则使用“保存到面板”选项将其固定到面板。在这里,您可以选择要关联的面板,命名图标,并可以随时打开面板查看效果。
高级编辑图标、页面和参数用法
这些实时面板的强大之处在于,每个图标的底层查询都可以是 随时可以编辑只要处于编辑模式,只需点击你感兴趣的图块上的铅笔图标,就会打开一个屏幕,你可以在其中调整查询和结果的显示方式。
在这种视图中,左侧通常会有一个数据源浏览面板,显示可用的表、函数和模式。这有助于您构建更复杂的查询,而无需记住所有列名。此外,现在甚至还集成了一个向导。 副驾驶你用自然语言描述你想看到的内容,系统会生成一个初始的 KQL 查询,然后你可以根据自己的喜好进行调整。
为了更好地整理信息,纳入了以下内容: 面板内的页面这些是可选的容器,可以根据您选择的任何标准对图标进行分组:按数据源、按功能区域(硬件与网络)、按用户类型等。您甚至可以设置详细的流程,包括一个系统状态摘要页面和一个用于更深入技术分析的页面。
创建新页面通常需要进入编辑模式,打开页面面板,然后点击“添加页面然后使用上下文菜单重命名。创建完成后,只需选中它并添加所需的图标即可。在任务栏叠加层中,您可以使用可切换的配置文件来复制此概念(例如,使用键盘快捷键从“浅色视图”切换到“高级视图”)。
MGI 参数 它们是另一个关键组成部分:它们能显著提升仪表盘的性能和灵活性。如果在图标查询中包含参数,筛选操作会在流程的早期阶段就应用,从而减少需要处理和渲染的数据量。例如,参数可以表示要分析的时间间隔,或者要监控其资源消耗的特定进程的标识符。
图例、底层查询和面板自动更新
这些实时面板的用户体验受益于以下因素: 互动图例 图块。如果您拥有编辑权限,则可以从视觉格式设置面板中选择图例位置(上、下、左、右),用户可以单击图例项来打开或关闭数据系列。
与图例的交互不仅仅是简单的点击:按住 Ctrl 键可以添加或删除多选项目,按住 Shift 键可以选择范围,未选中的项目会显示为灰色。此外,通常还会包含一个搜索按钮,用于查找特定项目,以及另一个用于…… 反转选择可以使用键盘上的方向键在项目列表中导航,并在图表中突出显示相应的数据。
关于查询,用户通常可以以只读和编辑两种模式查看。“查看查询”上下文菜单会打开一个面板,显示查询语句和结果表;用户可以在此面板中选择在现有查询集中进行编辑,或创建新的查询集,两者之间保持清晰的区分。 数据定义和可视化.
任务栏叠加层真正发挥作用的关键要素是 自动更新 数据刷新。在 Microsoft 仪表板中,此功能通过特定的管理选项卡进行管理,在该选项卡中可以启用或禁用自动刷新,并定义最小间隔和默认频率。 最小间隔 它起到刹车的作用:防止用户设置过快的刷新率,以免系统过载。
例如,如果作者将默认频率设置为 1 小时,最小间隔设置为 30 分钟,则用户可以在 30 分钟到 1 小时之间调整间隔,但不能低于 30 分钟。应用于硬件覆盖层领域,情况类似:每秒刷新一次 FPS 或温度等数据是可以的,但运行繁重的查询或聚合操作,速度超过某个阈值就没有意义了。
以 JSON 格式共享、导出和版本控制仪表板
一个好的监控面板不仅仅在于你所看到的,它还在于…… 描述它的数据模型这就是为什么仪表盘平台通常允许您通过链接共享仪表盘并将其导出为 JSON 文件的原因。与其他用户共享非常简单,只需点击“共享”按钮、复制链接或通过电子邮件或 Teams 发送即可——就完成了。
示例:我如何与朋友和家人分享我的 Spotify 帐户?导出为 JSON 格式便于版本控制、模板和手动编辑。该文件描述了面板标识符、标题、图块列表(包括其 ID、查询、布局位置、关联页面、视觉类型、视觉选项和使用的参数)、数据源、使用的 JSON 模式、自动刷新设置以及页面和参数定义等元素。
这种类型的文件可以用作 新面板模板此文件可用作备份以恢复先前版本,或作为直接编辑 JSON 进行批量更改的基础。平台通常允许您重新导入此文件,并将当前面板配置替换为文件中包含的配置。
也支持通过文件更新或恢复面板:前往管理部分,选择“替换为文件”,选择 JSON 文件,应用更改后保存面板。如果我们将此方法推广到任务栏叠加层,很容易想象这样一个系统:您可以将指标、样式和位置的配置导出到类似的 JSON 文件中,然后与其他用户共享或上传到不同的计算机。
Electron 中的任务栏集成:跳转列表、缩略图和叠加层
如果您正在考虑开发叠加层,请使用 电子除了其他适用于各种系统的功能外,您还可以使用一系列功能强大的 Windows 任务栏专用功能。 操作系统其中最著名的功能之一是跳转列表,当您右键单击任务栏中的应用程序图标时,就会出现该列表,它允许您定义对常用任务的快速访问。
Windows 用户任务被设计为 快捷方式 这些操作不依赖于应用程序的当前状态,例如“开始监控”、“打开性能视图”或“限制帧率”。它们通过以下方式配置: app.setUserTasks 即使关闭应用程序后,它们仍然存在,因此您必须确保在应用程序安装期间图标和可执行文件的路径保持有效。
另一篇非常有趣的文章是…… 缩略图工具栏当鼠标悬停在应用程序图标上并看到窗口缩略图时,会出现一个小工具栏。 BrowserWindow.setThumbarButtons 您最多可以添加七个按钮。 comandos 例如暂停监控、更改叠加配置文件或重置统计信息。
为了在任务栏中清晰地显示状态,Electron 提供了 BrowserWindow.setOverlayIcon这样就可以在应用图标上放置一个小图片,类似于 WPF 的叠加层。这非常适合快速显示应用的内容。 系统的总体状态:绿色表示一切正常,黄色表示任何指标处于警告区域,红色表示温度过高或消耗过大。
最后,用 BrowserWindow.flashFrame 你可以 让任务栏按钮闪烁 为了引起用户的注意,例如,当游戏最小化时,如果电脑温度过高,而电脑运行速度很慢,这个功能就很有用。当然,您始终应该记得发出警报…… flashFrame(false) 当窗口获得焦点或经过一段合理的时间后,以免令人烦恼。
WPF 中的 Overlay:TaskbarItemInfo 的 Overlay 属性
如果你的主要技术栈是 C# 和 WPF,那么集成最直接的方法是…… 任务栏中的图标叠加层 这是通过课堂实现的。 TaskbarItemInfo这个类公开了一个名为 Overlay 类型 System.Windows.Media.ImageSource 它表示叠加在任务栏程序图标上的图像。
默认情况下,此属性为 null,表示没有覆盖层。要在 XAML 中设置它,需要声明一个代码块。
在 C# 代码中,可以通过简单的赋值来设置图像:通过以下方式搜索图像资源。 FindResource 它被投射到 DrawingImage 或者在将其分配给之前,将其转换为相应的类型 taskBarItemInfo1.Overlay结果是在应用程序图标右下角上方显示一个小型静态或动态图像。
该机制的设计目的正是为了传达 应用程序状态 无需依赖通知区域,例如在以下版本中 Windows 7 它默认会隐藏图标。通过使用任务栏按钮叠加层,即使通知区域缩小,也能确保用户看到状态变化。
如果使用图标对象,重叠图像将以正确的大小渲染并保持正确的颜色深度。唯一的显著限制是,如果用户已将任务栏配置为显示小图标,则不会显示叠加层。即便如此,作为一种机制, 快速系统健康指示器它非常有用。
使用 MSI Afterburner 和 RivaTuner 实时监控您的电脑。
在以叠加层形式显示实时系统数据时,很少有组合能像以下这些组合一样广为人知: MSI Afterburner 与 RivaTuner Statistics Server 配合使用这种“组合”非常受欢迎,因为它允许您在玩游戏的同时调整 GPU 参数(频率、电压、风扇),以及查看几乎所有硬件指标。
与其他监控工具相比,它的最大优势在于,它提供了一个选项,可以将您选择的参数以叠加层的形式显示在游戏画面之上,也就是说, 实时 OSD 即使在全屏模式下玩游戏,该信息仍然可见。这样,您可以查看电脑运行是否流畅、是否达到性能极限,或者是否有任何部件过热,这对于保护 CPU 和 GPU 等组件至关重要。
MSI Afterburner 最初是一款显卡超频和调校工具,它负责硬件配置和传感器数据采集。它还集成了 RivaTuner Statistics Server,后者会在游戏画面上叠加显示 OSD 信息。此外,它还可以从其他数据提供商处获取数据,例如…… HWInfo64、HWMonitor 或 AIDA64进一步扩展可用指标。
该系统可显示 CPU 和 GPU 使用率、频率、温度、负载、功耗、电压、帧率、帧时间等诸多信息。所有信息均可自定义,包括文本或图形、大小、颜色和屏幕位置等选项,如果您想设计自己的任务栏叠加层,它将是一个实用的工具。
安装并配置 MSI Afterburner 和 RivaTuner
设置这套组合的过程非常简单。首先 下载 MSI Afterburner 官方网站它通常以 ZIP 文件的形式提供。您可以直接运行安装程序,也可以根据需要将其解压缩。务必仅从官方网站下载,以避免下载到修改版或损坏版。 恶意软件.
在安装向导中,您会看到一个选项,可以选择是否安装 RivaTuner Statistics Server。如果您希望在游戏中以叠加层的形式显示数据,请选择此选项。您可以同时安装这两个软件,也可以分别安装,但为了确保版本完全兼容,最好同时安装。 彼此兼容.
无需信用卡即可创建 Apple ID 的方法安装完成后,就可以进行配置了。在 MSI Afterburner 中,打开应用程序并点击齿轮图标进入其属性设置。在“常规”选项卡中,确保关键选项已启用,尤其是在“兼容性属性”部分,以便 Afterburner 能够与系统和 RivaTuner 正常通信。
然后你转到以下选项卡: 监控在这里,您可以定义数据刷新率(例如,每秒刷新 1.000 毫秒),从监控表中选择要监控的传感器,并确定数据提供程序(例如,如果您使用 HWInfo 等)。在下方的图表属性中,您可以决定每个指标的显示方式:屏幕显示 (OSD)、系统托盘或兼容的键盘液晶显示屏。
勾选“在屏幕上显示信息”后,该指标将显示在游戏画面上方的叠加层中。您可以选择以文本、图形或两者混合的方式查看,这在以下情况下尤其有用: 帧时间和帧率图表有助于更好地理解波动情况。您还可以调整图表限制,例如,使 GPU 频率处于合适的范围内,而不会被截断。
MSI Afterburner 和 RivaTuner 中的高级 OSD 调优
在 MSI Afterburner 设置中,“屏幕信息”选项卡允许您: 地图快捷键 要显示或隐藏 OSD、切换配置文件或激活特定功能,您可以保留默认按键,也可以定义其他对您更方便的按键。
确定要显示的内容后,打开 RivaTuner Statistics Server,它通常会最小化显示在通知区域。它的界面非常简洁:在主屏幕上,您可以选择全局配置文件或每个应用程序的配置文件,右侧是主要选项。首先要确保…… 显示屏幕显示 它必须激活,否则你在游戏中将看不到任何内容。
选择 应用程序检测级别 控制 RivaTuner 检测 3D 程序的灵敏度。“低”设置通常就足够了,可以防止 Photoshop 等应用程序被识别为游戏并显示叠加层。“中”或“高”设置可能会增加资源占用,并干扰不应显示 OSD 的软件。
其他选项,例如“隐身模式”或“自定义 Direct3D 支持”,除非您有非常特殊的需求(例如强制某些游戏或 API 支持),否则应保持禁用状态。“帧率限制”允许您在 RivaTuner 中设置帧率限制,如果您想充分发挥 60Hz 显示器的性能,这将非常有用,但通常情况下,从显卡驱动程序或游戏本身进行限制会更可靠。
“扫描线同步”参数提供了一种特殊的减少画面撕裂的方法,且不会引入过多的输入延迟,适用于不具备 G-Sync 或 FreeSync 功能的显示器。然而,如今许多用户更倾向于使用垂直同步或可变刷新率技术,因此将此选项设置为零。此外,启用 OSD 支持也很重要(屏幕显示支持选择字体渲染模式(矢量 3D 或栅格 3D),并调整颜色、阴影和缩放等视觉效果。
放置叠加层、配置文件和推荐指标
其中一个关键细节是能够…… 移动叠加层 将 OSD 显示在屏幕上最不碍眼的位置。RivaTuner 在其界面右下角内置了小箭头,方便您将 OSD 调整到任何舒适的位置:角落、两侧,甚至如果您需要最大程度的可视性,也可以调整到屏幕中央。不过,通常来说,将 OSD 显示在不会遮挡游戏 HUD 的角落位置更为实用。
你还可以为每款游戏设置不同的配置文件,这样,在小地图位于左上角的游戏中,你可以将叠加层向右移动,反之亦然。这让你能够在调整可见性的同时,又不丢失实时数据。
例如,一个非常实用的配置是始终显示 GPU温度和负载CPU温度、功耗和帧率。有了这些信息,你就能大致了解瓶颈是出在CPU、GPU还是温度上。如果想更进一步,可以添加内存使用率、显存使用率,或许还可以以图表形式显示帧时间。
MSI Afterburner 和 RivaTuner 的组合之所以声名鹊起,正是因为它能够在极低的资源占用下,轻松实现所有这些功能。无论是技术知识有限、只想监控电脑性能问题的用户,还是需要对数十个参数进行高度精细监控的发烧友,它都能完美胜任。
然而,在大多数情况下,使用……就足够了。 稳定版 这些工具的测试版通常会带来新功能,但也存在更多不稳定的风险,如果您希望在游戏或工作时获得可靠的监控,那么这种风险就得不偿失了。
移动监控:将任务栏叠加层扩展到屏幕之外
屏幕叠加层的一个副作用是,虽然它占用空间很小,但如果您经常截屏或录制视频,它可能会很烦人。如果您不想泄露这些信息,但也不想让它显示在游戏画面上方,您可以使用…… 第二块外屏就像老式手机一样,用来显示指标。
这时,像 Pitikap 这样的应用程序就派上用场了,它可以与 MSI Afterburner 连接。它安装在 PC 上,并且…… 智能手机 (安卓 o iOS它们确保两台设备连接到同一个 Wi-Fi 网络。连接成功后,您可以从电脑添加信息模块,这些模块将以小部件的形式显示在您的移动设备上。
Windows 应用占用资源极少,因此您可以让它在后台运行而不会注意到它的存在。在您的手机上,您可以进行调整。 颜色、尺寸、文本和布局 这些小部件会根据您在桌面上或显示器支架上的摆放位置自动调整。它就像一个专门用来管理电脑健康状况的小型实体控制面板。
这个理念与精心设计的任务栏叠加层的理念完美契合:它不仅仅是用信息填满屏幕,而是关于…… 将每条信息放在正确的位置一部分在任务栏中,一部分在游戏内 OSD 中,还有一部分可能在外部设备上。
最终,通过结合 Windows 任务栏 API、Electron 或 WPF 等框架、基于查询的实时仪表板模型以及 MSI Afterburner 和 RivaTuner 等成熟工具,您可以构建一个非常完整的覆盖系统,让您随时了解 PC 的运行状况。 无需冒着被禁的风险 也不会在比赛中诉诸侵入性注射。
相关文章:PowerShell 中的遥测:变量、隐私和数据传输
艾萨克对字节世界和一般技术充满热情的作家。我喜欢通过写作分享我的知识,这就是我在这个博客中要做的,向您展示有关小工具、软件、硬件、技术趋势等的所有最有趣的事情。我的目标是帮助您以简单而有趣的方式畅游数字世界。