Esse comportamento padrão também me incomoda muito. Concordo com a Microsoft que provavelmente foi uma boa idéia usar como padrão "Mostrar apenas notificações" para a maioria dos usuários. O objetivo da "Área de notificação" é (como o nome indica) mostrar notificações aos seus usuários. NÃO deve 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 da bandeja são importantes para mim e quais eu preferiria ocultar. 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. Portanto, 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, está abaixo HKLM
, que é uma configuração para toda a máquina. Mas o comportamento dos ícones da bandeja é específico do usuário, no entanto, não há HKCU
equivalente a essa chave.
A chave do registro relevante está realmente HKCU\Software\Classes\Local Settings\Microsoft\Windows\CurrentVersion\TrayNotify
no IconStreams
valor. Essa chave é uma chave de registro binária. Ele contém vários blocos de dados que armazenam o caminho completo para os 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 sobre como decifrar o formato binário da chave de registro acima ou como acessar as mesmas informações usando o (não documentado) ) ITrayIcon
interface. Esses métodos foram usados para produzir utilitários que podem detectar e alterar o comportamento dos ícones de bandeja individuais programaticamente.
Como o acesso programático a essas informações está disponível, não deve ser difícil escrever um pequeno programa utilitário que monitore periodicamente a lista de ícones da bandeja e mude o comportamento de quaisquer novos ícones que detectar. Depois disso, ele registraria o nome do ícone e não o alteraria novamente, para que quaisquer alterações feitas manualmente pelo usuário não fossem substituídas.
Aqui estão alguns exemplos de código para detectar e modificar o comportamento de ícones de bandeja individuais:
Ambos fornecem bons exemplos de como executar as tarefas necessárias para criar um pequeno utilitário que monitora e altera o comportamento de novos ícones de notificação. Se em algum momento eu começar a escrever esse utilitário, eu o publicarei aqui.