Visual Basic - Ejecutar programa externo y esperar a que termine

Life is soft - evento anual de software empresarial
 
Vista:

Ejecutar programa externo y esperar a que termine

Publicado por Tok (29 intervenciones) el 13/08/2002 09:51:14
Hola, necesito saber como se puede hacer para que desde una aplicación VB se llame a un programa externo y que la aplicación no continue hasta que no se termine la ejecución de ese programa.

He probado ya con WinExec y con GetExitCodeProcess, y OpenProcess, pero no funciona. El caso es que una vez ejecutado el programa, lo que se hace es borrarlo del disco duro, y claro, como la aplicación no espera para seguir ejecutandose, intenta borrar el fichero cuando todavía está en ejecución, asi que da un error. Alguien sabe como solucionarlo???
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

RE:Ejecutar programa externo y esperar a que termi

Publicado por Luis Rodrigo Solorzano M. (18 intervenciones) el 13/08/2002 19:12:38
colega aqui te regalo el codigo que yo he usado , que raro pues ami si me funciona los get y open, bueno de todas formas te envio esto probalo y escribeme para ver que ondas.. ojo con la constante Still_Active
que es la de la magia, con RETVal..
invocas la funcion asi
call ejecutar( mi_ruta_programa)

salud2

Codigo Aqui va -------------->>>

Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long

Const STILL_ACTIVE = &H103
Const PROCESS_QUERY_INFORMATION = &H400

Public Sub Ejecutar(ByVal CmdLine As String)
Dim hProcess As Long
Dim RetVal As Long
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, Shell(CmdLine, vbMinimizedNoFocus))
Do
GetExitCodeProcess hProcess, RetVal
DoEvents
' Sleep 100
Loop While RetVal = STILL_ACTIVE
End Sub
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