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

Я использую вышеупомянутые команды в файле .bat для автоматического перезапуска SpeedFan каждый раз, когда компьютер выходит из спящего режима.

Однако старый значок SpeedFan на панели задач не исчезнет автоматически при появлении нового. Я должен вручную переместить курсор на старый значок, чтобы он исчез. Как я могу заставить его исчезнуть автоматически?

Я только что нашел простое решение: скачайте NoTrayOrphans.exe с http://www.autohotkey.net/~Nazzal/Other/NoTrayOrphans.exe

Спасибо всем вам за вашу помощь!

2 ответа2

1

Теперь для правильного ответа.

Просто используйте простой скрипт AutoIt вместо taskkill /F /IM:

 WinClose("SpeedFan")

Вам просто нужно убедиться, что "Свернуть при закрытии" отключен в конфигурации SpeedFan ("Опции" -Tab).


Извините, если это неправильный ответ, и я не могу подтвердить это личным опытом, но вы даже пытались найти решение?

Мой общий подход заключается в том, чтобы совершать виртуальные движения мыши или использовать некоторые вызовы Windows-API, чтобы заставить окна обновлять область уведомлений.

Я никогда не делал ничего подобного, но после нескольких поисков я пришел к этой строке поиска Google: windows refresh icons "system tray" OR "notification area" autohotkey OR autoit

Один красивый результат: AHK - ow-to-refresh-system-tray-icons
Еще один: autohotkey.com/board/topic/80624-notrayorphans/ (ссылка в теме сверху)

Другие результаты (без autohotkey OR autoit):

  1. Освежающее-The-уведомление-зонная система лотки
  2. forum.lazarus.freepascal.org/index.php?topic=14847.0
  3. blog.stephenklancher.com/2013/08/refreshing-the-notification-area-system-tray/исполняемым файлом - но, похоже, он не работает в Windows 8.1 с classic-shell)

На SO есть возможный дубликат (я помню, что видел больше, но не могу их найти):stackoverflow.com/questions/74723/can-you-send-a-signal-to-windows-explorer-to-make-it-refresh-the-systray-icons

К сожалению, я не могу публиковать более прямые ссылки и предпочел бы написать комментарий вместо этого «ответа» ...

0

Поместите приведенный ниже код в ваш пакетный файл, чтобы обновить systray. нашел источник по этой ссылке, который работает хорошо (код вставлен ниже из ссылки)

@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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .