使 Windows 默认“显示图标和通知”,但让您隐藏一些

Kez*_*Kez 14 windows-registry windows-7 taskbar notifications notification-area

在 Windows 7 中,如果您禁用了该Always show all icons and notifications on the taskbar选项,单个应用程序的设置将默认为。Only show notifications

替代文字

是否有一种神奇的方式将默认值更改为Show icon and notifications而不是Only show notifications

替代文字

用例:当一个新应用程序出现并在系统托盘中添加一个图标时,它默认显示图标和通知。我喜欢那里的大多数图标,因为它们可以快速访问正在运行的任何程序,但我仍然想有选择地隐藏我不想在那里看到的少数图标。

如果我启用,Always show all icons and notifications on the taskbar我将无法隐藏任何内容。如果我禁用它,我必须检查列表中的每个应用程序并更改选项,然后密切关注它是否有任何新应用程序。因此我的问题。

drw*_*ode 1

这种默认行为也让我很困扰。我同意微软的观点,即对于大多数用户来说默认设置“仅显示通知”可能是一个好主意。“通知区域”的目的(顾名思义)是向用户显示通知。它不应该是公司放置无用图标来“宣传”其程序但不执行任何操作的地方。

\n\n

话虽这么说,作为高级用户,我很清楚哪些托盘图标对我来说很重要,哪些是我想隐藏的。我宁愿让图标始终默认显示,但能够手动隐藏单个图标,就像OP所要求的那样。许多托盘图标不仅提供通知,还提供实时状态以及对设置和控件的快速访问等。因此,我对缺乏允许新通知行为的设置(即使在注册表中)感到失望图标默认为“显示图标和通知”。

\n\n

我还没有找到这样的设置。James 上面提到的注册表项可能不是用。一方面,它位于 下HKLM,这是机器范围的设置。但是托盘图标的行为是特定于用户的,但是没有HKCU该键的等效项。

\n\n

相关的注册表项实际上是HKCU\\Software\\Classes\\Local Settings\\Microsoft\\Windows\\CurrentVersion\\TrayNotify在值中IconStreams。\n此项是一个二进制注册表项。它包含多个数据块,这些数据块存储已添加通知图标的可执行文件的完整路径,以及每个图标显示的最后一个工具提示以及每个图标的“显示”设置。

\n\n

因此,尽管我还没有找到更改新图标的默认行为的方法,但我能够找到一些很好的参考资料,了解如何破译上述注册表项的二进制格式或如何使用 (无证)ITrayIcon接口。这些方法用于生成可以通过编程方式检测和更改各个托盘图标的行为的实用程序。

\n\n

由于可以通过编程方式访问此信息,因此编写一个小型实用程序来定期监视托盘图标列表并更改它检测到的任何新图标的行为应该不难。之后,它会记录图标的名称,并且不会再次更改它,这样用户手动所做的任何更改都不会被覆盖。

\n\n

以下是一些用于检测和修改各个托盘图标的行为的代码示例:

\n\n\n\n

这两个都提供了执行创建一个监视和更改新通知图标行为的小型实用程序所需的任务的很好的示例。如果在某个时候我有时间编写该实用程序,我会将其发布回此处。

\n