Pregunta: | 55159 - COMO EVITAR QUE EJECUTEN EL SISTEMA SI ESTE YA ESTA EJECUTAD |
Autor: | Anly Calle Cruz |
Holas, necesito ayuda por fa gracias.
Como evito que no vuelvan a ejecutar o abrir dos veces el sistema Desarrollado. |
Respuesta: | nayumi orama |
Supongo que te referirás a que una aplicación sólo se ejecute una vez.
La mejor forma de hacerlo es utilizando un mutex con nombre. Los mutex son objetos globales del sistema operativo, que además pueden ser compartidos entre aplicaciones. Pero vamos al código. En el formulario principal, supongamos Form1, de tu aplicación pones el siguiente código. static Mutex mutex; static string AppGuid ="26272A87-988F-428c-90DB-0CFA372A2E99"; // GUID generado con la herramienta de guids public static bool InstanceExists { // En el get de la propiedad se crea un mutex y nos informa en // si el mutex ya existia o no. Creamos el mutex con nombre para // poder localizarlo posteriormente. Tenemos que asegurarnos que // el nombre del mutex va a ser único, por eso se usa un GUID. get { bool notExists; mutex = new Mutex(false, "Local\\" + AppGuid, out notExists); return !notExists; } } En el main de tu aplicación pones el siguiente código if (!Form1.InstanceExists ) Application.Run(new Form1()); De esta forma, el main sólo ejecutará el formulario si el mutex no existe. |