bonjour
Mon application permet de se fermer (pas se descendre dans la barre des tâches). Elle reste quand même active dans ce sens qu'elle fonctionne en arrière-plan. Ensuite, il est possible de la ramener (de rendre visible la fenêtre) en double-cliquant sur l'icône qu'elle met en place dans le SystemTray. Seulement mon appli offre la possibilité de cacher cette icône du systray, donc quand elle run en arrière-plan, il n'y a pas de moyen apparent de la ramener. On peut toujours aller dans le Task Manager et tuer le processus soi-même. Mais ça ne résout pas le problème. L'instance de l'appli qui tournait n'est pas récupérée. Voilà, j'avais déjà écrit cette appli en Java et j'avais implémenté ce système (qui marchait parfaitement, soi-dit en passant). Je vous l'explique en espérant être assez clair :
1. À son lancement, l'appli essaie de créér un serveur sur un certain port réseau, s'il est déjà occupé, c'est qu'une autre instance de cette appli tourne déjà. Alors, il essaie de se connecter à ce port dans un client TCP. Il envoie ensuite un message au serveur de l'appli via le port lui disant de se montrer. L'appli, si elle est invisible, se montre. Ensuite, le processus qui a créé le client se tue lui-même, afin de ne pas créer une 2eme instance de l'appli inutile. Revenons au test du point 1: si le port est libre, l'appli occupe et écoute le port et fonctionne normalement. Voilà.
J'ai essayé de plusieurs façons de récréer ce système en C# mais ça ne marche jamais. Si mon explication a été assez claire et que vous la comprenez, pouvez-vous m'indiquer un moyen de réaliser ceci en C#?
Un gros merci d'avance à celui qui saura me répondre.
Partager