como Ejecutar Un .Exe de vfp desde otro .Exe de vfp

5,870 views
Skip to first unread message

Luis Alberto Morales Trejo

unread,
Jul 28, 2010, 9:45:43 AM7/28/10
to ayuda de fox
Hola Atodos Tengo varios Sistemas desarrollados en Visual Fox pro  me pidieron qu elos centralizara y realizara un solo haceso  y dependiendo al usuari podria entrar a cada sistema y en cada sistema a los modulos que tiene acceso
lo que yo quiero realizar es otro poryecto  en el cual contenga un menu con los nombres de cada sistema  y cada usuario podria entrar a dichos  dependiendo de sus perfiles
Alguien de ustedes me puede ayudar de como lo puedo realizar
 
 
ro por lo regular lo corro con el
1.-  Run "C:\SISTEMAS\SERVICIOS\IT.EXE"
2.- Shell.Run("C:\SISTEMAS\SERVICIOS\IT.EXE",0,0)
 
En el primer caso me sale una pantalla blanca y alo pude resolver con la segunda opcion
Pero  al se llamdo este ejecutable el primer ejecutable  me marca error al quererlo cerrar , al salir del sistema que llame seme queda abierta la ventana principal del primer ejecutable y no lo puedo cerrar  tengo que cerrarlo por medio del adminsitrador de tareas. Ojala alguien me pueda ayudar con este tema
Gracias
 
Luis Alberto Morales
Mexico D.F
 
 

Victor Espina

unread,
Jul 28, 2010, 10:44:51 AM7/28/10
to Comunidad de Visual Foxpro en Español
Pon el siguiente PROCEDURE en el programa principal de tu aplicacion
lanzadora:

PROCEDURE launchProgram(pcProgramLocation)
*
LOCAL cCurrentFolder,cProgramFolder
cCurrentFolder = SET("DEFAULT") + CURDIR()
cProgramFolder = JUSTPATH(pcProgramLocation)

LOCAL oWSH
oWSH = CREATEOBJECT("WScript.Shell")
SET DEFAULT TO (cProgramFolder)
oWSH.Run(pcProgramLocation,0,.T.)
SET DEFAULT TO (cCurrentFolder)
*
ENDPROC


Despues, para lanzar un programa haces asi:

launchProgram("C:\SISTEMAS\SERVICIOS\IT.EXE")

y listo; con eso funcionara. Lo probe en VFP6, asi que debe funcionar
en cualquier version de VFP posterior a esa.

Saludos

Victor Espina


On 28 jul, 09:45, Luis Alberto Morales Trejo

Luis Mata

unread,
Jul 28, 2010, 12:45:06 PM7/28/10
to ayuda de fox
Huy aqui hay varios puntos que tocas centralizar, llamar exe, evitar pantallazos arma tus pasos a seguir y segun vayas avanzando nos vas preguntando.
 
Lusi
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 5320 (20100728) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com

Luis Alberto Morales Trejo

unread,
Jul 28, 2010, 12:06:40 PM7/28/10
to ayuda de fox
Gracias vespinas
y dime como   finalizo el program principal  el que llama a cada uno de estos programas
 
> Date: Wed, 28 Jul 2010 07:44:51 -0700
> Subject: [vfp] Re: como Ejecutar Un .Exe de vfp desde otro .Exe de vfp
> From: vesp...@gmail.com
> To: publice...@googlegroups.com

Victor Espina

unread,
Jul 28, 2010, 12:43:07 PM7/28/10
to Comunidad de Visual Foxpro en Español
En tu programa principal pones:

DO FORM <tu forma principal>
READ EVENTS

y en la forma principal pones un boton "Salir" con el siguiente
codigo:

THISFORM.Release()
CLEAR EVENTS

La idea es que el programa lanzador permanezca activo todo el tiempo,
para que el usuario pueda lanzar otros modulos si quiere o volver a un
modulo luego que salio de el.

Si lo que quieres es cerrar el programa lanzador luego de lanzar uno
de los modulos, de modo que si el usuario quiere pasarse a otro modulo
tenga que volver a ejecutar el programa lanzador, entocnes anade este
procedimiento a tu programa principal:

PROCEDURE ExitApp()
CLEAR EVENTS
CLEAR ALL
ENDPROC

Y en launchProgram() pon esto justo al final:

exitApp()

Saludos

Victor Esipna


On 28 jul, 12:06, Luis Alberto Morales Trejo
<luis_a741...@hotmail.com> wrote:
> Gracias vespinas
>
> y dime como   finalizo el program principal  el que llama a cada uno de estos programas
>
>
>
> > Date: Wed, 28 Jul 2010 07:44:51 -0700
> > Subject: [vfp] Re: como Ejecutar Un .Exe de vfp desde otro .Exe de vfp
> > From: vespi...@gmail.com

Walter R. Ojeda Valiente

unread,
Jul 28, 2010, 1:47:00 PM7/28/10
to publice...@googlegroups.com
Hola

¿Has probado con ponerle .T. al argumento final, algo como:

  oShell = CreateObject("WScript.Shell")
  oShell.Run("C:\SISTEMAS\SERVICIOS\IT.EXE", 0, .T.)

?

Saludos.

Walter.

Hotmail: Trusted email with Microsoft’s powerful SPAM protection. Sign up now.
Reply all
Reply to author
Forward
0 new messages