Как повторно добавить значок в системный трей после сбоя explorer.exe

У моего Java-приложения в настоящее время есть значок на панели задач. Однако при сбое системного трея (вы можете имитировать это, уничтожив explorer.exe на панели задач), значок исчезает после возврата системного трея.

Когда я проверяю SystemTray.getSystemTray ().

На данный момент я удаляю и добавляю свой значок каждые 15 секунд или около того, но есть ли другой способ реализовать это, чтобы он не исчезал и не появлялся и не раздражал пользователя?


person Angeline    schedule 27.10.2011    source источник


Ответы (2)


Просто предположение.

Проверяйте pid для explorer.exe раз в несколько секунд. Если он изменился, отмените регистрацию значка в трее и зарегистрируйте его снова.

person 9000    schedule 27.10.2011
comment
Похоже, это может сработать, но как я могу сделать это на Java? Я провел поиск и обнаружил, что вы можете довольно легко найти идентификатор процесса запущенного процесса или других процессов в JVM, но я не знаю, как это сделать для других процессов. - person Angeline; 28.10.2011

На всякий случай, если кто-то еще наткнется на это и задастся вопросом, что произошло, в конце концов мне пришлось придерживаться удаления и добавления значка через несколько секунд, потому что Windows не обновляет JVM о статусе значков в трее... Это было естественно, это не лучший способ исправить это, но, похоже, лучшего способа не было.

person Angeline    schedule 19.03.2012