Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: Bazooka en Octubre 28, 2010, 08:55:39 am

Título: Hola si ejecuto una aplicacion externa como se cuando termino
Publicado por: Bazooka en Octubre 28, 2010, 08:55:39 am
Hola desde mi programa necesito ejecutar un exe externo y lo hago con shell. ahora necesitaría saber cuando la misma se cierra hay alguna forma de saberlo?

Gracias
Título: Re:Hola si ejecuto una aplicacion externa como se cuando termino
Publicado por: FrankLizardo en Octubre 28, 2010, 10:47:37 am
bueno creo que si hay una forma o varias formas pero yo utilizo este codigo


esto va en un Modulo

Código: [Seleccionar]
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
   
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Const STILL_ACTIVE = &H103
Const PROCESS_QUERY_INFORMATION = &H400


Public Sub ExecCmdNoFocus(ByVal CmdLine As String)
    Dim hProcess As Long
    Dim RetVal As Long
   
    hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, _
            Shell(CmdLine, vbNormalFocus))
    Do
       
        GetExitCodeProcess hProcess, RetVal

        DoEvents
       
        Sleep 100

    Loop While RetVal = STILL_ACTIVE
   
    MsgBox "El Proceso Termino", vbInformation, "Info"
End Sub



Esto va en el form pones un boton cmdAbrir

Código: [Seleccionar]
Private Sub cmdAbrir_Click()
    Call ExecCmdNoFocus(App.Path & "\miexe.exe") 'aqui llamas a tu aplicacion externa
End Sub

eso es too espero q te sirva
Título: Re:Hola si ejecuto una aplicacion externa como se cuando termino
Publicado por: Bazooka en Octubre 29, 2010, 05:02:19 pm
Si perfecto Gracias amigo!!!