?id=dd5a908d-23ac-4330-9644-4c4a833b4fc2
Cómo impedir que una aplicación se ejecute más de una vez
por José M. Alarcón
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 Aguín
Fundador de
campusMVP.es, el
proyecto de referencia en formación on-line para programadores en lengua española.
Autor de varios libros y cientos de artículos. Galardonado como
MVP de Microsoft desde 2004. Gallego de Vigo, amante de la ciencia y la
tecnología, la música y la lectura. Ayudando a la gente en Internet desde 1996.