Evitar cargar + de una vez la aplicación

Post Reply
User avatar
dbzap
Posts: 189
Joined: Mon Nov 07, 2005 7:36 pm
Location: Chile
Contact:

Evitar cargar + de una vez la aplicación

Post by dbzap »

En 16bits se hacia con SET MULTPLE...
Pero en 32... como se evita la segunda carga del EXE ?
Saludos
User avatar
wmormar
Posts: 1050
Joined: Fri Oct 07, 2005 10:41 pm
Location: México
Contact:

Re: Evitar cargar + de una vez la aplicación

Post by wmormar »

dbzap wrote:En 16bits se hacia con SET MULTPLE...
Pero en 32... como se evita la segunda carga del EXE ?
Saludos
lRunning := IsExeRunning( "FACTURACION" )

Regresa un lRunning
William, Morales
Saludos

méxico.sureste
User avatar
dbzap
Posts: 189
Joined: Mon Nov 07, 2005 7:36 pm
Location: Chile
Contact:

Post by dbzap »

Gracias !!
User avatar
RodolfoRBG
Posts: 253
Joined: Tue May 16, 2006 4:46 pm
Location: San Luis Potosi, SLP, Mexico
Contact:

Post by RodolfoRBG »

Si tengo el mismo EXE en 2 o mas carpetas diferentes, como le hago para que se pueda correr el mismo EXE de otra carpeta pero que no se corra mas de una vez el de la misma carpeta?
RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
User avatar
dbzap
Posts: 189
Joined: Mon Nov 07, 2005 7:36 pm
Location: Chile
Contact:

Post by dbzap »

Tas mu shiko pa'preguntar esas kosas...
User avatar
RodolfoRBG
Posts: 253
Joined: Tue May 16, 2006 4:46 pm
Location: San Luis Potosi, SLP, Mexico
Contact:

Post by RodolfoRBG »

No has oido hablar de los niños genios? :lol: jajaja, solo agregale bigote y barba y soy yo (bueno, eso dice mi esposa).

Ya te burlaste de mi pero .... la respues es....?
RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
User avatar
dbzap
Posts: 189
Joined: Mon Nov 07, 2005 7:36 pm
Location: Chile
Contact:

Post by dbzap »

No tengo la respuesta, mi pregunta era debido a que nuestro sistema es re-grande entonces los tipos abrian por aqui y por alla y queria evitar el problema con mis archivos temporales.
Solo Eso.
Suerte
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Post by Raymundo Islas M. »

Hola

En este momento no tengo a la mano el nombre del colega del foro, que nos posteo esto :

IF IsExeRunning( cFileName( HB_ARGV(0) ) )
MsgInfo( 1, "NO ES POSIBLE EJECUTAR EL MODULO ADM DEL SISTEMA" + CRLF + ;
"YA QUE ESTA ACTUALMENTE EN OPERACION.",,,, )
QUIT
ENDIF


Y de esta manera, me ha funcionado barbaro !!


Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
RodolfoRBG
Posts: 253
Joined: Tue May 16, 2006 4:46 pm
Location: San Luis Potosi, SLP, Mexico
Contact:

Post by RodolfoRBG »

Ray, gracias por tu observación, el problema es que, con esta instruccion, si en la misma computadora se trabajan 2 empresas diferentes (una en cada carpeta independiente con un exe en cada carpeta) no las pueden trabajar al mismo tiempo y yo lo que quiciera es que solo no abran (por error) el mismo exe de la misma carpeta.

Alguna otra sugerencia?
RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Rodolfo,

HB_ARGV(0) devuelve tambien el path del EXE.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
RodolfoRBG
Posts: 253
Joined: Tue May 16, 2006 4:46 pm
Location: San Luis Potosi, SLP, Mexico
Contact:

Post by RodolfoRBG »

Gracias Antonio, pero...

Si uso:

IF IsExeRunning(HB_ARGV(0))
? "El ejecutable ya esta en uso, Se aborta el sistema."
RETURN(NIL)
ENDIF

me permite continuar trabajando con el mismo EXE en la misma carpeta y en este caso deseo que me avise y no lo haga.
RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
User avatar
Vikthor
Posts: 271
Joined: Fri Oct 07, 2005 5:20 am
Location: México

Post by Vikthor »

DbZap :

Puedes usar la clase TwCapture y la puedes descargar de http://vikthor.com.mx/fivewin

Code: Select all

 /*
    Verifica si ya se está ejecutando una instancia de la misma aplicación.
   */
   oWnd := TWCapture():New()
   oWnd:WCapture( "Sistema de Registro y Control de Eventos" )
   IF oWnd:lCaptured      // La aplicación ya está corriendo
      MsgStop("El sistema ya está cargado","Aviso del sistema")
      RETURN( Nil )
   ENDIF
Vikthor
User avatar
Manuel Valdenebro
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Post by Manuel Valdenebro »

Yo utilizo la misma solución (artesana) desde hace muchos años (Clipper 87) con excelente resultado:

Al inicio del programa abro un dbf en EXCLUSIVE donde generalmente guardo información de la estación (por ejemplo, el path del servidor) y del propio usuario, pero igualmente podría ser una dbf vacia. Si el dbf ya esta abierto, aborta el programa.


USE IMPRESOR EXCLUSIVE NEW

IF NETERR()
ALERT(" ¡¡¡ El programa está ya abierto")
QUIT
ENDI

De esta manera, duplicar el exe en la misma carpeta, pero te permite aperturarlo desde otra.
Un saludo

Manuel
Post Reply