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.

Foi útil?

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).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top