PostHeaderIcon .Net : Réaliser un programme Mono Instance

Il est quelquefois nécessaire de s’assurer que le programme que l’on développe ne pourra être lancé qu’une seule fois sur une même machine.  Par exemple si l’on veut ne pas accéder plusieurs fois à un ensemble de données et de ce fait en casser l’intégrité logique.

Il y a en gros deux méthodes pour réaliser cette fonction :

1- Lancer un Mutex au démarrage en s’assurant qu’il n’existe pas déjà, … s’il existe déjà, c’est qu’une autre instance du même programme est déjà présente, et on ressort aussitôt en indiquant à l’opérateur qu’il y a une autre fenêtre ouverte quelque part … Si l’on souhaite faire apparaitre cette fenêtre automatiquement, il faudra préférer la solution suivante

2- Chercher le nom du process qui vient de se lancer, et vérifier qu’il n’en existe pas d’autre. Si effectivement il y en a déjà un, avec le Handle de la forme principale, on le rappelle au premier niveau d’affichage.

C’est cette deuxième méthode qui est décrite ci dessous :

Ce qu’il y a à noter dans ce code :

Le code concerné se place dans le code de démarrage, module appelé “program.cs” par défaut

- L’utilisation de “ShowWindow” qui appartient à la bibliothèque “user32.dll, d’ou présence de “Using System.Runtime.InteropServices”

- L’utilisation de “Process”, d’ou présence de “Using System.Diagnostics”

Laisser un commentaire