Como forçar apenas uma instância do meu aplicativo?

1

Estou desenvolvendo um programa usando rapidamente. Estou usando um indicador que pode ocultar / mostrar a janela principal.

Mas quando eu inicio o aplicativo a partir do lançador, ele inicia uma nova instância desse aplicativo (assim, um indicador adicional será mostrado). Em vez de apenas mostrar a janela principal do aplicativo em execução anterior.

Qual é a maneira usual de forçar apenas um indicador?

    
por Nick Lemaire 24.06.2012 / 21:11

2 respostas

2

Primeiro, verifique se você tem um bom motivo para fazer isso. As pessoas esperam que os aplicativos funcionem como você descreve em sua postagem. Mesmo que você pessoalmente não goste.

Mas, para responder à sua pergunta, uma das maneiras mais fáceis de fazer isso é criar um arquivo (por exemplo, no diretório de configuração) na inicialização, que você remove quando o aplicativo é encerrado. Antes de iniciar o aplicativo, você deve verificar seu código se outra instância já estiver ativa e, em caso afirmativo, sair diretamente. Se você também quiser focar o aplicativo ativo, precisará de uma maneira de fazer a comunicação entre processos. Por exemplo, via um soquete. Consulte o link para obter mais informações.

    
por Marten de Vries 24.06.2012 / 21:26
2

Encontrei uma solução ainda melhor (embora um pouco mais complicada). Você pode verificar não apenas se o seu processo está sendo executado, mas também fornecer alguma entrada se já estiver iniciado. Por favor, confira esta solução .

    
por dargad 28.09.2012 / 14:42