única instância e notificar na bandeja do sistema
-
12-09-2019 - |
Pergunta
Eu estou trabalhando sobre a aplicação (C # 2.0). Eu tenho implementado instância única nele. Tudo está bem. Se eu executar o aplicativo novamente, ele mostra messagebox dizendo "instância já está em execução".
Na verdade eu não quero mostrar a mensagem através messagebox.
Eu quero mostrar esta mensagem usando ponta balão de já em execução instância (ele tem notificar ícone na bandeja do sistema).
Como posso conseguir isso?
Agradecemos antecipadamente.
Solução
Você precisa de uma forma de interprocess comunicação , para sinalizar para a outra instância que deve exibir o messagebox.
Neste exemplo, você poderia sair um pouco melhor do que dizer a instância existente para exibir a mensagem, e em vez disso diga a ele para restaurar a sua janela principal (ou seja, "unminimise").
Outras dicas
Você pode usar um serviço WCF dentro de você aplicação.
A sua segunda aplicativo se conecta a ele via NetPipe, invode um método e fecha.
Seu primeiro aplicativo recebe a chamada e pops-up de notificação balão
A maneira mais fácil de implementar uma única instância e informar o primeiro caso de um segundo é iniciado já está implementar em .Net. Basta dar uma olhada nos seguintes links:
Hanselman: única instância WinForms
OpenWinForms (selecione aplicação verdadeira instância única)
O CodeFluent Runtime que é conjunto de ferramentas fornece uma SingleInstance classe para implementar um único aplicativo instância:
Você acabou de substituir o WndProc método para pops-up sua notificação (ponta Baloon).