2011-10-27 2 views
3

내 Java 응용 프로그램은 현재 시스템 트레이에 아이콘이 있습니다. 그러나 시스템 트레이가 충돌하면 작업 표시 줄에서 explorer.exe를 종료하여이를 시뮬레이션 할 수 있습니다. 시스템 트레이가 돌아 오면 아이콘이 사라집니다.explorer.exe 크래시 후 시스템 트레이에 아이콘을 다시 추가하는 방법

시스템 트레이의 아이콘에 대해 SystemTray.getSystemTray(). getTrayIcons()를 선택하면 충돌이 발생하고 다시로드되고 트레이 아이콘이 길어 지더라도 항상 내 TrayIcon이 시스템 트레이에 계속 남아 있음을 보여줍니다 그곳에.

15 초마다 한 번씩 아이콘을 제거하고 추가하는 중이지만 사라지지 않고 표시되고 사용자를 귀찮게하지 않도록이 기능을 구현하는 다른 방법이 있습니까?

답변

0

아무 문제가 발생하지 않아서 무슨 일이 일어 났습니까? 결국 Windows는 트레이 아이콘 상태에서 JVM을 업데이트하지 않기 때문에 몇 초 후에 아이콘을 제거하고 추가해야했습니다. 그것은 자연스럽게 그것을 고칠 수있는 최선의 방법은 아니지만 더 나은 방법으로 보이지 않았다.

1

그냥 맞춰보세요.

몇 초 후에 pid가 explorer.exe 인 지 한 번 확인합니다. 변경된 경우 트레이 아이콘 등록을 취소하고 다시 등록하십시오.

+0

이 소리가 들리 겠지만 어떻게 Java에서이 작업을 수행 할 수 있습니까? 검색을 수행하여 JVM 내에서 실행중인 프로세스 나 다른 프로세스의 프로세스 ID를 쉽게 찾을 수 있다는 것을 알았지 만 다른 프로세스에서 그렇게하는 방법을 모르겠습니다. – Angeline

+0

정말 모르겠지만 http://www.golesny.de/p/code/javagetpid에서 살펴보십시오. – 9000