Эффективный способ сделать приложение в системном трее - PullRequest
3 голосов
/ 23 июня 2009

Это мой первый пост о переполнении стека, и я просто интересуюсь вариантами создания приложения в системном трее. Приложение будет запускаться первичным из системного трея, все еще работая, и может быть выведено в окно при нажатии. Также необходимо иметь некоторую поддержку глобального отслеживания нажатий клавиш, чтобы открыть окно.

Мне любопытно, какие варианты у меня есть, так как я уверен, что есть много способов сделать это. Я больше всего знаком с Java, хотя у меня есть некоторый опыт работы с C ++. Я готов изучать другие языки, если у них есть определенные преимущества, хотя было бы неплохо поработать с тем, что я знаю.

Спасибо

Ответы [ 3 ]

7 голосов
/ 23 июня 2009

Java 6 имеет новую функциональность, которая позволяет создавать приложения, использующие системный трей.

В статье Новая функциональность системного лотка в Java SE 6 подробно рассматриваются некоторые примеры кода.

Недавно добавленные классы SystemTray и TrayIcon пакета java.awt могут использоваться для добавления значков в системный трей. Иконки могут реагировать на щелчки мыши и использовать всплывающие меню. Однако эта новая функциональность является частью AWT, поэтому не очень хорошо интегрируется с компонентами Swing.

Вот пример маленьких часов, которые отображаются в системном трее, которые были сделаны с использованием классов SystemTray и TrayIcon в Java 6:

System tray clock application in Java
(источник: coobird.net )

1 голос
/ 23 июня 2009

Простые старые Winforms получили бы мой голос.

Если вы знакомы с Java, вам не составит труда использовать один из управляемых языков для создания простого приложения в виде лотка с .NET.

Здесь - несколько советов о том, как правильно создать приложение в трее.

0 голосов
/ 23 июня 2009

Будьте осторожны с управляемыми приложениями и Java здесь. Приложения для лотков запускаются постоянно. Поэтому, если они плохо написаны, они могут использовать достаточно системных ресурсов, чтобы мешать другим вещам.

Нет ничего плохого в управляемом коде или Java в целом, но может быть сложнее сохранять управляемые или java-приложения экономными с памятью, вводом-выводом и временем ЦП.

Я говорю это как разработчик команды разработчиков Windows - мы видели множество очень сложных приложений в трее. Да, некоторые из них - даже приложения для Windows или MSFT.

Может быть, лучше написать очень маленькое приложение с легким лотком, которое запускает более богатый процесс, когда он нужен пользователю. Вы можете написать свое пробное приложение на простом C ++ прямо поверх низкоуровневых Win32 API. Если вы не хотите использовать Win32 API напрямую, вы можете использовать Windows Template Library .

...