制作系统托盘应用程序的有效方法

时间:2009-06-23 02:56:31

标签: java c++ desktop-application system-tray

这是我在Stack Overflow上的第一篇文章,我只是想知道制作系统托盘应用程序的选项。应用程序将在仍然运行时从系统托盘运行,并且可以在单击时显示在窗口中。还需要对全局击键跟踪提供一些支持,以打开一个窗口。

我很好奇我可以选择哪些选项,因为我确信有很多方法可以做到这一点。虽然我对C ++有一些经验,但我最熟悉Java。如果他们对他们有一些明确的好处,我愿意去探索其他语言,尽管以某种方式处理我所知道的事情会很好。

谢谢

3 个答案:

答案 0 :(得分:7)

Java 6具有新功能,允许创建使用系统托盘的应用程序。

New System Tray Functionality in Java SE 6文章详细介绍,并提供了一些示例代码。

SystemTray包的新添加的TrayIconjava.awt类可用于向系统托盘添加图标。图标可以响应鼠标点击并使用弹出菜单。但是,这个新功能是AWT的一部分,因此它与Swing组件的集成并不是很好。

以下是使用Java 6中的SystemTrayTrayIcon类在系统托盘中显示的小时钟示例:

System tray clock application in Java
(来源:coobird.net

答案 1 :(得分:1)

普通的旧Winforms会得到我的投票。

如果您熟悉Java,那么使用其中一种托管语言创建一个带.NET的简单托盘应用程序应该没什么困难。

Here就创建托盘应用的正确方法提出了一些建议。

答案 2 :(得分:0)

在此处谨慎使用manged应用程序和Java。托盘应用程序一直在运行。因此,如果写得不好,那么他们就可以使用足够的系统资源来干扰其他事情。

一般来说,manged代码或Java没有任何问题,但是使用内存,I / O和CPU时间来保持托管或Java应用程序的节俭可能会更加困难。

我说这是Windows支持团队的开发人员 - 我们已经看到了很多很多非常小的托盘应用程序。是的,有些甚至是Windows或MSFT应用程序。

编写一个非常小的轻量级托盘应用程序可能是一种更好的方法,可以在用户需要时启动更丰富的过程。您可以在低级Win32 API之上编写简单C ++中的try应用程序。如果您不想直接使用Win32 API,可以使用Windows Template Library