Eu tenho uma aplicação em java que quando executada aparece um icone na barra de tarefas do windows ao lado do relógio. A aplicação utiliza um JAR (SysTray). Até aqui tudo bem. Funciona corretamente.
Estou utilizando o JavaService para colocar esta aplicação como serviço do windows. Ao ligar o computador a aplicação é inicializada. Até aqui tudo bem, ainda.
O problema é o seguinte quando o windows inicializa a aplicação através do Serviço o icone não aparece na barra de tarefas ao lado do relógio, mas a aplicação esta sendo executada.
O que eu observei é que a aplicação é executada antes da barra de tarefas do windows aparecer na tela e eu acho que isto faz com que o icone da minha aplicação não apareça. Alguém pode me ajudar ??? :shock:
Serviços não devem interagir com o usuário diretamente. A única interação permitida é uma “message box” do tipo Service (tal como aquela message box que às vezes aparece, quando um serviço não pôde ser iniciado). (alguns serviços mostram uma janela DOS mas isso não é recomendado, e só foi aceito pelos arquitetos do Windows para permitir que aplicações fossem mais facilmente transformadas em serviços.
Portanto, mesmo que o serviço solicite que um ícone seja mostrado na barra de tarefas, o Windows não irá permitir isso. É proibido mesmo - não adianta tentar fazer em C++, que já tentei isso e quebrei a cara.
Para que algo apareça nessa barra, deve ser uma aplicação tradicional (pense em um programa como ZoneAlarm, um firewall pessoal, ou em antivírus como o McAfee ou o Norton AntiVirus: é composto de um serviço, que faz a parte “invisível”, e de uma aplicação de controle desse serviço, que pode ficar como um ícone ou não. Nunca tente fazer as duas coisas no mesmo executável - já tive um exemplo de um colega que tentou fazer isso, e até conseguiu, mas a aplicação tinha um comportamento super-instável e ele levou uma bronca danada, porque nunca conseguiu fazer aquilo funcionar direito.