Esse comportamento padrão também me incomoda muito. Concordo com a Microsoft que provavelmente era uma boa ideia definir como padrão "Mostrar notificações somente" para a maioria dos usuários. O objetivo da "Área de Notificação" é (como o nome indica) para mostrar notificações para seus usuários. NÃO deveria ser um lugar onde as empresas colocam ícones inúteis que "anunciam" seus programas, mas não fazem nada.
Dito isto, como usuário avançado, tenho uma boa idéia de quais ícones de bandeja são importantes para mim e que prefiro ocultar. Eu prefiro que os ícones sempre sejam exibidos por padrão, mas com a capacidade de ocultar manualmente os individuais, exatamente como o OP solicitou. Muitos ícones de bandeja não apenas fornecem notificações, mas também status em tempo real e acesso rápido a configurações e controles, etc. Por isso estou decepcionado com a falta de uma configuração (mesmo no registro) que permita o comportamento de novos ícones de notificação para ser "Mostrar Ícone e Notificações" por padrão.
Não consegui encontrar essa configuração. A chave do registro mencionada acima por James provavelmente não é útil . Por um lado, é sob HKLM
, que é uma configuração de toda a máquina. Mas o comportamento dos ícones de bandeja é específico do usuário, no entanto, não há HKCU
equivalente dessa chave.
A chave de registro relevante é, na verdade, HKCU\Software\Classes\Local Settings\Microsoft\Windows\CurrentVersion\TrayNotify
no valor IconStreams
.
Essa chave é uma chave de registro binária. Ele contém vários blocos de dados que armazenam o caminho completo para executáveis que adicionaram ícones de notificação, bem como a última dica de ferramenta exibida por cada ícone e a configuração "show" para cada um.
Portanto, embora eu não tenha encontrado uma maneira de alterar o comportamento padrão de novos ícones, consegui encontrar algumas boas referências de como decifrar o formato binário da chave de registro acima ou como acessar as mesmas informações usando a interface ITrayIcon
(não documentada). Esses métodos foram usados para produzir utilitários que podem detectar e alterar o comportamento de ícones de bandeja individuais programaticamente.
Como o acesso programático a essas informações está disponível, não deve ser difícil criar um pequeno programa utilitário que monitore periodicamente a lista de ícones da bandeja e altere o comportamento de quaisquer novos ícones detectados. Depois disso, ele gravaria o nome do ícone e não o alteraria novamente, de modo que quaisquer alterações feitas manualmente pelo usuário não seriam sobrescritas.
Aqui estão alguns exemplos de código para detectar e modificar o comportamento de ícones de bandeja individuais:
-
Um script do PowerShell publicado em 8 de julho de 2011 Por Micah Rowland: Windows 7 automação de área de notificação - caindo de volta para baixo o binário Registro Rabbit Rabbit (Certifique-se de ler os comentários porque eles incluem atualizações.)
-
Versão AC # (incluindo código não gerenciado em c ++) publicado em 3 de setembro de 2013 por Hianz Novo O Windows Tray / Notification Manager está aqui!
Ambos fornecem bons exemplos de execução das tarefas necessárias para criar um pequeno utilitário que monitore e altere o comportamento de novos ícones de notificação. Se em algum momento eu conseguir escrever esse utilitário, vou postar aqui.