Это поведение по умолчанию также беспокоит меня. Я согласен с Microsoft в том, что для большинства пользователей было бы неплохо по умолчанию установить "Только показывать уведомления". Назначение "области уведомлений" (как следует из названия) - показывать уведомления своим пользователям. Это НЕ должно быть местом, где компании размещают ненужные значки, которые "рекламируют" свои программы, но ничего не делают.
При этом, как опытный пользователь, я хорошо представляю, какие значки в трее важны для меня, а какие я предпочел бы скрыть. Я бы предпочел, чтобы значки всегда отображались по умолчанию, но с возможностью вручную скрывать отдельные значки, как того требовал ОП. Многие значки в трее предоставляют не только уведомления, но также статус в реальном времени и быстрый доступ к настройкам, элементам управления и т.д. Поэтому я разочарован отсутствием параметра (даже в реестре), который позволял бы работать с новыми значками уведомлений. быть "Показать значок и уведомления" по умолчанию.
Я не смог найти такую настройку. Реестра упоминалось выше Джеймсом, вероятно , не полезно. С одной стороны, это под HKLM
, который является настройкой для всей машины. Но поведение значков в трее зависит от пользователя, однако HKCU
эквивалента этого ключа нет.
Соответствующий раздел реестра - это HKCU\Software\Classes\Local Settings\Microsoft\Windows\CurrentVersion\TrayNotify
в значении IconStreams
.
Этот ключ является двоичным ключом реестра. Он содержит несколько блоков данных, которые хранят полный путь к исполняемым файлам с добавленными значками уведомлений, а также последнюю подсказку, отображаемую каждым значком, и настройку "показывать" для каждого из них.
Поэтому, хотя я не нашел способа изменить поведение по умолчанию для новых значков, мне удалось найти несколько полезных ссылок о том, как расшифровать двоичный формат указанного выше раздела реестра или как получить доступ к той же информации с помощью (недокументированного Интерфейс ITrayIcon
. Эти методы использовались для создания утилит, которые могут программно обнаруживать и изменять поведение отдельных значков в трее.
Поскольку программный доступ к этой информации доступен, не составит труда написать небольшую служебную программу, которая периодически отслеживает список значков в области уведомлений и изменяет поведение любых новых обнаруженных значков. После этого он записывает имя значка и не изменяет его снова, так что любые изменения, сделанные пользователем вручную, не будут перезаписаны.
Вот несколько примеров кода для обнаружения и изменения поведения отдельных значков в трее:
Обе они дают довольно хорошие примеры выполнения задач, необходимых для создания небольшой утилиты, которая отслеживает и изменяет поведение новых значков уведомлений. Если в какой-то момент мне удастся написать эту утилиту, я опубликую ее здесь.