Empecher une applic. de se lancer 2 fois

Contenu du snippet

Astuce bien connue de certains et moins d'autres programmeurs pour empêcher une application de se lancer deux fois, il suffit d'agir au niveau des processus.

On parcourt tout d'abord tous les processus actifs, on s'assure que l'ID du processus est bien différente de celle des programmes que l'on compare pour ne ne pas considérer l'application courante comme en doublon avec elle-même puis si le nom des processus est identique, il s'agit bel et bien d'un deuxième lancement.

Pour pouvoir manipuler ces processus, on fait tout d'abord référence à l'espace de noms Diagnostics.

Source / Exemple :


//******************
//En début de code
//******************
using System.Diagnostics;

//******************************************************
//Au chargement (Main() ou dans Form_Load() pour applic. Windows
//******************************************************
//Obtient le processus en cours de l'application
Process Proc_EnCours = Process.GetCurrentProcess();
//Collection des processus actuellement lancés
Process[] Les_Proc = Process.GetProcesses();
//Pour chaque processus lancé
foreach (Process Processus in Les_Proc)
	/*Il ne faut pas comparer par rapport à cette instance
		du programme mais une autre (grâce à l'ID)*/
	if (Proc_EnCours.Id != Processus.Id)
		//Si les ID sont différents mais de même nom ==> 2 fois le même programme
		if (Proc_EnCours.ProcessName == Processus.ProcessName)
		{
		MessageBox.Show("Le programme ne peut pas être lancé 2 fois!");
		this.Close();
		}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.