这种默认行为也让我很困扰。我同意Microsoft的观点,对于大多数用户而言,默认为“仅显示通知”可能是个好主意。“通知区域”的目的(顾名思义)是向用户显示通知。公司不应在此处放置无用的图标来“宣传”其程序,但不执行任何操作。
话虽如此,作为高级用户,我对哪些托盘图标对我很重要以及哪些我希望隐藏的想法很了解。我宁愿默认情况下始终显示图标,但是能够按照OP的要求手动隐藏单个图标。许多任务栏图标不仅提供通知,而且还提供实时状态以及对设置和控件的快速访问等。因此,我对缺少设置(即使是在注册表中)也无法使新通知图标起作用的设置感到失望默认为“显示图标和通知”。
我一直没有找到这样的设置。James上面提到的注册表项可能没有用。一方面,它位于下HKLM
,它是机器范围的设置。但是任务栏图标的行为是特定于用户的,但是没有HKCU
等效的键。
相关注册表项实际上HKCU\Software\Classes\Local Settings\Microsoft\Windows\CurrentVersion\TrayNotify
在IconStreams
值中。此项是二进制注册表项。它包含几个数据块,这些数据块存储了添加了通知图标的可执行文件的完整路径,以及每个图标显示的最后一个工具提示以及每个图标的“显示”设置。
因此,尽管我还没有找到更改新图标默认行为的方法,但是我能够找到一些很好的参考,以了解如何区分上述注册表项的二进制格式或如何使用(未记录)ITrayIcon
界面。这些方法用于产生实用程序,这些实用程序可以以编程方式检测和更改单个任务栏图标的行为。
由于可以通过编程方式访问此信息,因此编写一个小的实用程序来定期监视任务栏图标列表并更改它检测到的任何新图标的行为,应该不难。此后,它将记录图标的名称,并且不会再次更改它,以便用户手动进行的任何更改都不会被覆盖。
以下是一些用于检测和修改单个任务栏图标行为的代码示例:
这两个例子都很好地说明了执行一个小型实用程序所需的任务,该实用程序可以监视和更改新通知图标的行为。如果到某个时候我可以编写该实用程序,我将其发布回这里。