Ver Mensaje Individual
  #1  
Antiguo 11-08-2008
Avatar de Blaster
Blaster Blaster is offline
Miembro
 
Registrado: jun 2008
Ubicación: Miami, USA
Posts: 12
Reputación: 0
Blaster Va por buen camino
Question ¿Cómo usar mutex e impedir dos instancias de la misma app?

Hola, yo estoy haciendo una aplicación con Delphi 7 y me interesa garantizar que mi aplicación se ejecute una sola vez, luego de darle doble clic a un fichero ya asociado con esta en el registro del sistema.

Me explicaré mejor. Yo hago esto hasta ahora:


Código Delphi [-]
  if (ParamCount <> 0)
    then
      begin
        //Copio la direccion entera al archivo abierto
        ArchivoEnteroAbierto:= ParamStr(1);
        ....
        ....
        //Cargo el archivo, hago el resto del trabajo, etc.
        ....
      end;

Yo utilizo ficheros de extensión *.sim, los cuales dentro contienen imagen, datos, etc. Pues bien, yo a través del instalador de mi aplicación logro asociar estos ficheritos a mi aplicación, y cuando le doy doble clic pues esta se ejecuta, se carga la imagen, se emplean los datos, etc, y al parecer todo ok, pero existe un gran problema.

El problema es que si yo le doy doble clic a otro fichero *.sim, pues me abre otra instancia de mi aplicación, y eso yo no quiero que ocurra.

¿Cómo puedo solucionar esto? He leido algo acerca del empleo de un ¿mutex? La verdad es que no sé nada de ello.

Preferiría que:
  1. No se levantase otra instancia de mi aplicación.
  2. Que la que ya estaba abierta detectara que se le dio doble click en otro fichero sim y que cargase en ella misma el nuevo fichero *.sim (al cual se le acaba de dar doble clic)
Si esto no es posible pues me conformaría con que:

1. No se levantase otra instancia de mi aplicación.

Gracias por adelantado.
Bye.
Reinier
Responder Con Cita