Install4j: добавление сервисного значка в системный трей - PullRequest
1 голос
/ 28 мая 2019

Я создал установщик через программу install4j.Установщик создает и добавляет службу, которая работает в фоновом режиме.

Я пытаюсь выяснить, возможно ли добавить значок на панели задач (в правом нижнем углу экрана), чтобы показать, что моя служба работает.Мне удалось заставить его работать, используя следующий код в моем основном классе:

            final Image image = Toolkit.getDefaultToolkit().getImage(MyClass.class.getClassLoader().getResource("funny-icon.png"));
            final TrayIcon icon = new TrayIcon(image, "Device Agent");

            if(SystemTray.isSupported())
            {
                final SystemTray tray = SystemTray.getSystemTray();
                icon.setImageAutoSize(true);

                try
                {
                    tray.add(icon);
                    ...

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

Есть идеи, как этого добиться?

1 Ответ

1 голос
/ 28 мая 2019

Это невозможно сделать, поскольку служба не может получить доступ к интерфейсу пользователя.Предыдущие версии Windows имели концепцию «интерактивной службы», но она была удалена начиная с Windows 7.

...