Faça o ícone antigo desaparecer da bandeja do sistema automaticamente após o SpeedFan ser reiniciado

3
@echo off
taskkill /F /T /IM speedfan.exe
start "" "C:\Program Files (x86)\SpeedFan\speedfan.exe"
cls
exit

Eu uso os comandos acima em um arquivo .bat para reiniciar o SpeedFan automaticamente sempre que o computador é ativado a partir do modo de suspensão.

No entanto, o ícone antigo do SpeedFan na bandeja do sistema não desaparecerá automaticamente quando o novo aparecer. Eu tenho que mover manualmente o cursor para o ícone antigo, de modo a fazê-lo desaparecer. Como posso fazê-lo desaparecer automaticamente?

Acabei de encontrar uma solução simples: faça o download de NoTrayOrphans.exe do link

Meus agradecimentos a todos vocês pela ajuda!

    
por Matthew Wai 15.10.2015 / 15:20

2 respostas

1

Agora, para uma resposta adequada.

Basta usar um script AutoIt simples em vez de taskkill /F /IM :

 WinClose("SpeedFan")

Você só precisa se certificar de que "Minimizar perto" esteja desativado na configuração do SpeedFan ("Opções" - Tab).

Me desculpe se esta não é uma resposta adequada e eu não posso fazer backup com experiência pessoal mas você já tentou encontrar uma solução?

Minha abordagem geral seria fazer movimentos virtuais de mouse ou usar algumas chamadas Windows-api para forçar o Windows a atualizar a área de notificação .

Eu nunca fiz algo assim, mas depois de algumas pesquisas cheguei a esta string de pesquisa do Google: windows refresh icons "system tray" OR "notification area" autohotkey OR autoit

Um bom resultado: AHK - ow-to-refresh -system-tray-icons
Outro: autohotkey.com/board/topic/80624-notrayorphans/ (vinculado no encadeamento acima)

Outros resultados (sem autohotkey OR autoit ):

  1. refrescante-da-notificação-área-sistema-bandeja
  2. forum.lazarus.freepascal.org/index.php?topic=14847.0
  3. blog.stephenklancher.com/2013/08/refreshing-the-notification-area-system-tray/ (com executável - mas parece não funcionar no windows 8.1 com shell clássico)

Existe um Possível Duplicar no SO (lembro-me de ver mais, mas não consigo encontrá-los): stackoverflow.com/questions/74723/can-you-send-a-signal-to-windows-explorer-to-make-it-refresh-the-systray-icons

Infelizmente eu não posso postar mais links diretos e eu preferiria escrever um comentário em vez desta resposta ...

    
por 15.10.2015 / 20:17
0

Coloque o código abaixo no seu arquivo de lote para atualizar o systray. encontrou uma fonte neste link que funciona bem (código colado abaixo do link)

@echo off
reg export "HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" %userprofile%\desktop\traynotify.reg /y
reg delete "HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v IconStreams /f
reg delete "HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v PastIconsStream /f
taskkill /f /im explorer.exe
start explorer.exe
exit
    
por 01.09.2018 / 15:47