2009-06-23 5 views
3

이것은 스택 오버플로에 대한 첫 번째 게시물이며 시스템 트레이 응용 프로그램을 만드는 옵션에 대해 궁금합니다. 응용 프로그램은 여전히 ​​작동하는 동안 시스템 트레이에서 기본을 실행하고 클릭 할 때 창에 표시 될 수 있습니다. 글로벌 키 스트로크 추적을 지원하고 창을 가져올 필요가 있습니다.시스템 트레이 응용 프로그램을 만드는 효과적인 방법

내가 할 수있는 옵션이 무엇인지 궁금해. 여러 가지 방법이 있습니다. C++에 대한 경험이 있지만 Java에 익숙합니다. 나는 그들이 어떤 확실한 특권을 가지고 있다면 다른 언어를 탐험 할 생각이지만, 내가 아는 것과 함께 일하는 것이 좋을 것이다.

고맙습니다.

답변

7

Java 6에는 시스템 트레이를 사용하는 응용 프로그램을 만들 수있는 새로운 기능이 있습니다.

New System Tray Functionality in Java SE 6 문서는 자세한 내용을 다루며 일부 샘플 코드도 제공합니다.

java.awt 패키지의 새로 추가 된 SystemTrayTrayIcon 클래스를 사용하여 아이콘을 시스템 트레이에 추가 할 수 있습니다. 아이콘은 마우스 클릭에 응답하고 팝업 메뉴를 사용할 수 있습니다. 그러나이 새로운 기능은 AWT의 일부이므로 Swing 구성 요소와의 통합이 매우 훌륭합니다.

다음은 자바 6에 SystemTrayTrayIcon 클래스를 사용하여 만들어진 시스템 트레이에 표시 조금 시계의 예 :

System tray clock application in Java http://coobird.net/img/systrayclock.png

+0

제안 해 주셔서 감사합니다. 자바를 사용해 보겠습니다. 포레 데커 (Foredecker)가 제안한 WTL 사용에 대한 제안을 시도해 볼 수도 있지만. 나는 C++ WTL 경로가 더 나은 성능을 발휘한다고 가정 할 것이다. 비록 실제로 의미가있을지라도 실제로는 응용 프로그램 자체에 어떤 의미에서 달려 있다고 생각 하긴하지만 얼마나 많이 궁금해한다. 문제에 대한 귀하의 의견을 보내 주셔서 감사합니다. –

1

일반 오래된 Winforms가 내 표를 얻습니다.

Java에 익숙하다면 관리되는 언어 중 하나를 사용하여 .NET으로 간단한 트레이 응용 프로그램을 만드는 데 거의 어려움이 없어야합니다.

Here은 트레이 응용 프로그램을 만드는 올바른 방법에 대한 조언입니다.

0

여기 manged했던 애플리케이션과 자바주의해야합니다. 트레이 응용 프로그램은 항상 실행됩니다. 그래서 그들이 잘못 작성 되었다면 다른 것들을 간섭하기에 충분한 시스템 자원을 사용할 수 있습니다.

Managed Code 또는 Java에 일반적으로 아무런 문제가 없지만 메모리, I/O 및 CPU 시간으로 관리되는 응용 프로그램 또는 Java 응용 프로그램을 절약하는 것이 더 어려울 수 있습니다.

저는 Windows perf 팀의 dev manger라고 말합니다. 우리는 수많은 피기 트레이 응용 프로그램을 보았습니다. 예, 일부는 Windows 또는 MSFT 응용 프로그램입니다.

사용자가 필요로 할 때 더 풍부한 프로세스를 시작하는 아주 작은 경량 트레이 응용 프로그램을 작성하는 것이 더 나은 접근 방법 일 수 있습니다. 저수준 Win32 API 위에 간단한 C++로 try app을 작성할 수 있습니다. Win32 API를 직접 사용하지 않으려면 Windows Template Library을 사용할 수 있습니다.

+0

메모리와 관련하여 오래 실행중인 앱으로 잡히는 것은 분명 쉽습니다. 그러나 귀하의 이론적 근거에 따르면 관리되는 언어로 트레이 응용 프로그램으로 씬 UI 레이어를 작성하는 것이 안전 할 것입니다 (물론 틀림없이 Win32를 사용하는 것보다 안전 할 것입니다). – Dan

+0

그건 사실이 아닙니다. 특히 메모리가있는 경우 네이티브 앱보다 관리 언어와 Java로 검열하는 것이 어렵습니다. 나는 이것의 많은 예를 보았다. 예를 들어, Coobird 예제의 작은 시계는 네이티브 코드로 작성된 것보다 훨씬 클 가능성이 큽니다. 이는 항상 활성화되어 있기 때문에 특히 그렇습니다. 노트! 나는 관리되는 자바 응용 프로그램이 잘못된 선택이라고 여기는 것은 아니며 단지 너무 많은 자원을 사용하지 못하도록 막아야한다는 것입니다. – Foredecker