In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Comando RUN

Foro de Xailer profesional en español
Responder
ddupre
Mensajes: 329
Registrado: Lun Nov 12, 2007 3:53 pm

Comando RUN

Mensaje por ddupre »

Hola foro,

No se si coresponde realizar esta consulta aquí, pero el que no pregunta....

Antes de molestar, he bustado en todo el foro si alguien había planteado esto, pero desafortunadamente no encontré nada.

Necesito utilizar el comando RUN para ejecutar una aplicación externa y me sucede que si bien, la aplicación se ejecuta correctamente, también se abre una ventana CMD bastante molesta. ¿Es posible hacer que dicha ventana no se abra?

Desde ya muchas gracias por toda ayuda.

Saludos
Daniel
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9252
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Comando RUN

Mensaje por ignacio »

Buenos días,

Si es posible evitar la ventana utilizando la bandera SW_HIDE

FUNCTION EXECUTE

Parameters:
<cFile>
File to execute
[<cDir>]
Starting directory. If empty, it uses the application root directory. If there is not path on 'cFile' it uses Application:CurDir
[<lWait>]

If it is .T. the application will wait until the process ends. By default .F.
[<nShowMode>]
External process show mode:
· SW_HIDE
· SW_SHOWNORMAL
· SW_SHOWMINIMIZED
· SW_SHOWMAXIMIZED
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
ddupre
Mensajes: 329
Registrado: Lun Nov 12, 2007 3:53 pm

Re: Comando RUN

Mensaje por ddupre »

Ignacio,
muchas gracias por responder,
He probado todas las formas del la función EXECUTE (en cuanto al parámetro nShowMode) y siempre me sucede lo mismo y es que el programa que lanzo queda como proceso en vez de como aplicación.

Viendo la documentación de Xailer hice pruebas con ShellExecute y WinExec y me pasa lo mismo (queda como proceso)

Seguí buscando solucones y lo único que sí funcionó fue utilizar wapi_shellexecute, pero lamenteblemete carece del parámetro lWait (que sí dispone EXECUTE), el cual me resultaba muy útil.

las pruebas las hice con este código:

cComando := "notepad.exe"
execute(cComando,,.T.,"SW_SHOWMAXIMIZED")

No se a qué se debe que quede como proceso, tal vez ud. me pueda indicar si estoy haciendo algo mal.

Saludos
Daniel
Responder