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