Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/03/2004, 14:11
Avatar de hmtech
hmtech
 
Fecha de Ingreso: agosto-2003
Ubicación: Puerto Rico
Mensajes: 332
Antigüedad: 20 años, 8 meses
Puntos: 0
hola
creo que esto es lo que buscas:

en un modulo:

Option Explicit

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

Public Const STILL_ACTIVE = &H103
Public Const PROCESS_QUERY_INFORMATION = &H400

Public Sub Ejecutar(Aplicacion As String)
Dim hProceso As Long 'Handle del proceso
Dim Activa As Long 'Valor devuleto por GetExitCodeProcess
Dim ret As Long

'Ejecutar la aplicacion, y quedarse con el handle (manipulador)
'del proceso, para poder controlar cuando termina
'VBNormalFocus hace que la aplicación comienze en una ventana normal
hProceso = OpenProcess(PROCESS_QUERY_INFORMATION, 0, Shell(Aplicacion, 1))

Do
'Obtiene información del proceso que iniciamos antes
ret = GetExitCodeProcess(hProceso, Activa)

'Para que siga funcionando el sistema normalmente,
'y se ejecuten los eventos
DoEvents
Loop While Activa = STILL_ACTIVE 'Sigue activa?
End Sub


En la forma:

Private Sub cmdEjecutar_Click()
Ejecutar Trim(ruta de la aplicacion)

'desde aqui se ejecutara cuando la apliocacion cierre
MsgBox "¡Listo! Ya terminó la aplicación ejecutada"
End Sub

saludos
hmtech
__________________
"...todos los días hay que luchar por que ese amor a la humanidad viviente se transforme en hechos concretos, en actos que sirvan de ejemplo, de movilización."
Che Guevara

Última edición por hmtech; 26/03/2004 a las 14:37