• Viernes 15 de Noviembre de 2024, 11:48

Autor Tema:  Ejecutar Aplicaciones  (Leído 754 veces)

BiosZip

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
    • http://bioszip.cjb.net
Ejecutar Aplicaciones
« en: Lunes 7 de Junio de 2004, 20:52 »
0
cuando uso el x = shell("miapp.exe"), me da el hWnd, pero no se como conseguir saber cuando la aplicacion se ha cerrado, para q mi programa se cierrar tambien con el

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Ejecutar Aplicaciones
« Respuesta #1 en: Viernes 11 de Junio de 2004, 11:04 »
0
Hola BiosZip.

Fíjate en el ejemplo:
Código: Text
  1.  
  2. Option Explicit
  3.  
  4. Private Const STILL_ACTIVE = &H103
  5. Private Const PROCESS_QUERY_INFORMATION = &H400
  6. Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessID As Long) As Long
  7. Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
  8. Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
  9.  
  10. Public Sub EjecutoYAlAcabarMeFinalizo(ByVal Exe As String)
  11.  
  12.     On Error GoTo Err_Sinc
  13.    
  14.     Dim lng1 As Long, lngRc As Long
  15.     lng1 = OpenProcess(PROCESS_QUERY_INFORMATION, False, Shell(Exe, vbNormalFocus))
  16.     Do
  17.         GetExitCodeProcess lng1, lngRc
  18.         Sleep 100
  19.         DoEvents
  20.     Loop While lngRc = STILL_ACTIVE
  21.    
  22.     End
  23.  
  24.     Exit Sub
  25.    
  26. Err_Sinc:
  27.     MsgBox "Fallo Ejecutando pgm '" & Exe & "'." & String(2, vbCrLf) _
  28.     & "(" & Err.Number & ") " & Err.Description, vbCritical, "Sincronizar"
  29.  
  30. End Sub
  31.  
  32.  

Abur.