Page 1 of 1

nro de instancias de un exe

PostPosted: Mon Dec 03, 2007 3:07 pm
by metaldrummer
Hola:
Cómo puedo evitar que un ejecutable se cargue dos o más veces en memoria?. Que solamente me permita mantener una instancia a la vez.
Gracias.

PostPosted: Mon Dec 03, 2007 3:16 pm
by ADBLANCO
Puedes almacenar un archivo temporal en el disco de la estación (si no existe, lo creas),El cual bloqueas exclusivo cuando entras, si no te permite bloquearlo, es que ya está siendo utilizado (ya activastes una vez)


Se que es un poco primitivo, pero trabaja para mi.

PostPosted: Mon Dec 03, 2007 3:37 pm
by Biel EA6DD
Code: Select all  Expand view
   IF IsExeRunning(cFileName(GetModuleFileName(GetInstance())))   //cFileName(HB_ARGV(0))
      MsgStop("Programa ya se está ejecutando!"+CRLF+CRLF+"Este programa no permite multiples instancias!")
      QUIT
   ENDIF

PostPosted: Mon Dec 03, 2007 3:39 pm
by cuatecatl82
Saludos metaldrummer: 8)

Hazlo más facil, agrega estas líneas en tu codifo fuente:

Function Main()


IF IsExeRunning( cFileName( HB_ARGV(0) ) )
MsgStop( "¡¡¡ ERROR CRITICO !!!"+CRLF+CRLF+"No es posible cargar más de 1 copia del Programa en su PC "+","Mensaje del Sistema")
QUIT
ENDIF


Return nil

Probado :P , asì no usas ninguna variable que cualquier usuario "escurridiso" pueda modificar y entrar cuantas veces quiera..

Espero te sirva.

Saludos...

I.S.C. Victor Daniel Cuatecatl Leon
Soluciones y Desarrollo de Software Empresarial
www.sisa.unlugar.com

PostPosted: Tue Dec 04, 2007 5:46 pm
by metaldrummer
gracias por las respuestas!!!!
funciona de mil maravillas.
Saludos
Consultas sobre ado soy todo oídos
Mil gracias nuevamente