FoxPro/Visual FoxPro - Evitar que un EXE se ejecute mas de una vez

   
Vista:

Evitar que un EXE se ejecute mas de una vez

Publicado por victor perez (278 intervenciones) el 27/03/2011 03:07:09
Hola amigos,

He tenido problemas con algunos de los usuarios de mi sistema porque corren mas de una vez el EXE principal. (llamado Clinica.exe)

Necesito saber la via para evitar que se ejecute mas de una vez el mismo EXE en una PC.

Agradecido de antemanos,

Victor - Panama
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Evitar que un EXE se ejecute mas de una vez

Publicado por kong (681 intervenciones) el 27/03/2011 07:54:19
****prueba esto****



FUNCTION F_INSTANCIAR && PARA COMPROBAR SI YA SE ESTA CORRIENDO EL PROGRAMA
* pubnRutina=2
PUBLIC nHdlCorriendo
nHdlCorriendo=FCREATE("D:\corriendo.txt")
salir=0
IF nHdlCorriendo<0
SET SYSMENU OFF
_SCREEN.WindowStatE= 2
MESSAGEBOX("C U I D A D O !"+CHR(13)+CHR(13)+;
"USTED HA INTENTANDO EJECUTAR OTRA INSTANCIA DEL MISMO SISTEMA"+CHR(13)+;
"(Esta instancia se cerrara automaticamente)",(0+48),;
"DOBLE INICIO DEL SISTEMA",10000)
RELEASE WINDOWS
QUIT
salir=1
ENDIF
RETURN salir
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Evitar que un EXE se ejecute mas de una vez

Publicado por xx (378 intervenciones) el 27/03/2011 19:42:53
Esta es una de las formas:

*recuerda asignar la cadena _aname al caption de tu formulario principal
*FPRINCIPAL.CAPTION=_aname


*/////////////////////////////////////////////////////////////////////////////////
*// CHEQUEO DE EXCLUSIVIDAD DE INSTANCIA!!
*/////////////////////////////////////////////////////////////////////////////////
* basicamente lo que hace es buscar una ventana que tenga el mismo titulo y si lo encuentra
* significa que otra instancia ya se cargo previamente, hay una funcion API no recuerdo bien
* el nombre creo que se llamaba BingOnTop que te trae la ventana cuando esta no esta
* seleccionada
DECLARE INTEGER FindWindow IN WIN32API AS WAPIFWindow STRING @,STRING @
_aclass=NULL
_aname=[ADMINISTRACION p/PYMES, by ODRF++]
_XAppwhd=WAPIFWindow( @_aclass, @_aname )
CLEAR DLLS
IF _XAppwhd!=0
SET PROCEDURE TO
SET LIBRARY TO
MESSAGEBOX( [YA CARGO EL SISTEMA], 16, [ERROR] )
_KillSignal()
RETURN
ENDIF
RELEASE _aclass
*/////////////////////////////////////////////////////////////////////////////////

Pd: una cosa importante a tener en cuenta es que cuando abres un reporte este te cambia
el titulo _aname es decir si visualizas un reporte e intentas cargar el programa otra vez este te permitira, hay una solucion a este problema y es desviar el reporte a otra ventana no a la principal

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Evitar que un EXE se ejecute mas de una vez

Publicado por santiago sscheppmann@yahoo.com (375 intervenciones) el 29/03/2011 16:48:19
Hola, el asunto es mas simple de lo que parece, graba una tabla (*.dbf) con un campo logico, en el disco C:\ de cada usuario, toda vez que el usuario ejecuta el Sistema, pones este campo en .T. y cuando sale del sistema lo pones en .F., si el sistema encuentra .T. ye no prosigue y sale ó pregunta si de todas maneras desea ejecutar el Sistema (por si hay un apagado inesperado del equipo, y el campo logico de queda en .T.).

Santiago
.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Evitar que un EXE se ejecute mas de una vez

Publicado por Juan Manuel Cruz (508 intervenciones) el 28/03/2011 10:23:38
Ese es un tema preguntado mil veces, Víctor, sería buena idea que cada cierto tiempo te des una vuelta por PortalFox.

Una solución aquí:

http://www.portalfox.com/index.php?name=News&file=article&sid=228&mode=nested&order=0&thold=0

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Evitar que un EXE se ejecute mas de una vez

Publicado por victor perez (278 intervenciones) el 28/03/2011 03:28:54
Hola Kong,

Implementè tu rutina en mi PRG principal y no me funciona.

Lo que hice fue lo siguiente implemente la funciona f_instanciar y la llamo al inicio de mi PRG principal mediante f_instanciar()

Verifique y se crea el archivo corriendo.txt en el directorio principal del programa (no uso letras porque en cada computador las letras de los discos duros son distintos).

Luego corro nuevamente la aplicacion y se ejecuta a pesar d estar ejecutandose ya y que el archivo corriendo.txt està presente.

Por favor si me ayudas a ver donde esta el error...

Gracias

Victor,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Evitar que un EXE se ejecute mas de una vez

Publicado por victor perez (278 intervenciones) el 29/03/2011 22:47:27
Hola,

Si yo visito Portalfox todas las semanas y me parece que daban una solucion al tema pero no lo entendí claramente, por eso la consulta.

victor,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Evitar que un EXE se ejecute mas de una vez

Publicado por victor perez (278 intervenciones) el 29/03/2011 23:04:15
Hola,

La dirección de PortalFox dada por JuanManuel Cruz, me resultó utilisima. No tuve que configurar nada solo hacer un copy / paste y listo...

Gracias a Todos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauricio

Evitar que un EXE se ejecute mas de una vez

Publicado por Mauricio (1367 intervenciones) el 30/03/2011 15:15:19
Victor, esta es otra manera de tratar de resolver tu problema:
http://www.portalfox.com/index.php?name=News&file=article&sid=2729
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar