2009-08-10 18 views
3

Je travaille sur l'application (C# 2.0). J'ai implémenté une instance unique dans celui-ci. Tout va bien. Si je réexécute l'application, la boîte de message affiche "instance is already running".instance unique et notifier dans la barre d'état système

En fait, je ne veux pas montrer le message par messagebox.

Je souhaite afficher ce message en utilisant l'info-bulle de l'instance déjà en cours d'exécution (il s'agit d'une icône de notification dans la barre d'état système).

Comment puis-je y parvenir?

Merci d'avance.

Répondre

4

Vous avez besoin d'un formulaire interprocess communication pour signaler à l'autre instance qu'elle doit afficher la boîte de message.

Dans ce cas, vous pouvez aller mieux que de dire à l'instance existante d'afficher le message, et lui dire à la place de restaurer sa fenêtre principale (c'est-à-dire "unminimise").

+0

Je recommande simplement d'ouvrir une prise et d'envoyer un signal de réveil à l'application. Tout ce dont vous avez besoin est construit en .NET (regardez dans les classes TcpListener/TcpClient). –

0

Vous pouvez utiliser un service WCF à l'intérieur de votre application.

Votre deuxième application s'y connecte via NetPipe, inverti une méthode et se ferme.

Votre première application reçoit l'appel et pops-la notification baloon

0

Le CodeFluent Runtime qui est ensemble gratuit d'outils fournit une classe SingleInstance pour mettre en œuvre une seule application par exemple:

Vous venez pour remplacer la méthode WndProc pour afficher votre notification (Astuce Baloon).