JASoft.org

El blog de José Manuel Alarcón Aguín. Programación web y mucho más...

MENÚ - JASoft: JM Alarcón

Cómo impedir que una aplicación se ejecute más de una vez

La mejor manera de conseguir que sólo pueda existir una copia de una determinada aplicación ejecutándose en cada instante en un equipo es mediante el uso de Mutexes. Los Mutexes son objetos del sistema operativo pensados para sincronizar procesos y subprocesos.

La siguiente función permite averiguar mediante el uso de un Mutex si la aplicación se está ejecutando o no:

public bool EnEjecucion()
{
   Mutex miMutex = new Mutex(false, "NombreÚnicoDeMiAplicación");
   return = !miMutex.WaitOne(0, false);
}

Su funcionamiento se basa en establecer un Mutex con un nombre único y dependiente de nuestra aplicación, y posteriormente en la segunda línea, solicitar su propiedad con la función WaitOne. Este método devuelve true si el proceso se ha apoderado con éxito de él y false si no es así. Dado que la primera instancia de la aplicación se apodera de él ya no está disponible para las siguientes hasta que ésta primera termine, por lo que las siguientes obtendrán un false al usar WaitOne.

Sencillo.

José Manuel Alarcón
Banner

Agregar comentario