Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Como saber cuando un programa msdos llamado con shellexecute ha acabado (https://www.clubdelphi.com/foros/showthread.php?t=33823)

tcp_ip_es 18-07-2006 13:15:11

Como saber cuando un programa msdos llamado con shellexecute ha acabado
 
Pues mismamente lo que pongo en el asunto, necesito llamar a un programa desde mi aplicación y despues de que ese programa se ejecute, tengo que mirar el log que ha generado para en funcion de lo que ponga borrar o no una tabla

Código Delphi [-]
 if ShellExecute(FPal.Handle,nil,PChar(Programa),PChar(parametros),'',SW_SHOWNORMAL) <> ERROR_FILE_NOT_FOUND then
  //Examinar el fichero log y si no tiene errores Borrar tabla ControlCambiosP
  showmessage('Prueba')
 else
   showmessage('No se puede acceder al programa: '''+Programa+''' puede que la ruta sea incorrecta ');

tal y como lo tengo el showmessage prueba sale antes de que el proceso haya acabado con lo que si en esas lineas mirara el log del proceso que ejecuta el otro programa no existiría... es como si lanzara en proceso de fondo el shellexecute y siguiera con lo siguiente, vamos que lo hace asi seguro.... que solución me proponeis??? :confused:

Gracias de antemano, Saludos, Tony

seoane 18-07-2006 13:44:50

En la sección de trucos encontraras varios que sirven para ejecutar un programa y esperar a que termine ( truco 30, truco 168, etc), pero permite adivinar tu situación y si estoy equivocado, lo mas seguro, ignoras lo siguiente. Tienes un programa de dos y estas redirigiendo su salida a un archivo para luego poder leerlo, si es esa la situación, te sugiero el truco 54, es una función que le pasas un programa o comando de dos, con todos sus parámetros, y te devuelve la salida en un string.

tcp_ip_es 19-07-2006 09:33:00

Al final el truco elegido ha sido ...... el 30 !!! :D el programita al que llamo es un bat que a su vez llama un programita java, y este realiza un proceso y genera un log y ese el es fichero que posteriormente tengo que leer, por eso el truco 54 no me sirve pero realmente es interesante :D

Muchas gracias Seoane por tu ayuda,
Saludos, Tony


La franja horaria es GMT +2. Ahora son las 01:17:26.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi