Quelqu'un pourrait-il montrer comment il est possible de vérifier si une autre instance du programme (par exemple, test.exe) est en cours d'exécution et, dans l'affirmative, arrêter le chargement de l'application s'il existe une instance existante.
Cette question a déjà des réponses:
Réponses
Trop de publicités?
Patrik
Points
5315
Vous n'êtes pas sûr de ce que vous entendez par « le programme », mais si vous souhaitez limiter votre application à une seule instance, vous pouvez utiliser un Mutex pour vous assurer que votre application n'est pas déjà en cours d'exécution.
[STAThread]
static void Main()
{
Mutex mutex = new System.Threading.Mutex(false, "MyUniqueMutexName");
try
{
if (mutex.WaitOne(0, false))
{
// Run the application
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
else
{
MessageBox.Show("An instance of the application is already running.");
}
}
finally
{
if (mutex != null)
{
mutex.Close();
mutex = null;
}
}
}
KeithS
Points
36130
R Quijano
Points
758