Question

Je travaille sur l'application (C # 2.0). J'ai mis en œuvre par exemple unique en elle. Tout va bien. Si je lance à nouveau l'application, il montre messagebox disant « instance est en cours d'exécution ».

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

Je veux montrer ce message en utilisant la pointe ballon de l'instance actuelle (il a notifier l'icône dans la barre système).

Comment puis-je y parvenir?

Merci d'avance.

Était-ce utile?

La solution

Vous avez besoin d'une forme de de communication interprocessus, pour signaler à l'autre par exemple qu'il doit afficher le messagebox.

Dans ce cas, vous pouvez faire mieux que de dire l'instance existante pour afficher le message, et au lieu de lui dire restaurer sa fenêtre principale (à savoir « unminimise »).

Autres conseils

Vous pouvez utiliser un service WCF en vous app.

Votre deuxième application se connecte via netpipe, invode un procédé et ferme.

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

La meilleure façon de mettre en œuvre une seule instance et d'informer le premier si un second démarrage est déjà mise en œuvre en .Net. Il suffit de jeter un coup d'oeil dans les liens suivants:

Hanselman: Single Instance WinForms

OpenWinForms (sélectionnez une application unique instance True)

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

Vous venez de passer outre le WndProc méthode à votre notification pops-up (pointe de Baloon).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top