Underc0de - Hacking y seguridad informática

Programación General => Visual Basic => Códigos Fuentes => Mensaje iniciado por: ANTRAX en Julio 26, 2010, 01:55:55 pm

Título: Ejecutar un programa y esperar que finalice
Publicado por: ANTRAX en Julio 26, 2010, 01:55:55 pm
Código: Visual Basic
  1. 'en un from
  2. Option Explicit
  3.  
  4. Private Const PROCESS_QUERY_INFORMATION = &H400
  5. Private Const STILL_ACTIVE = &H103
  6. Private Declare Function OpenProcess Lib "kernel32" _
  7. (ByVal dwDesiredAccess&, ByVal bInheritHandle&, ByVal dwProcessId&) _
  8. As Long
  9. Private Declare Function GetExitCodeProcess Lib "kernel32" _
  10. (ByVal hProcess As Long, lpExitCode As Long) _
  11. As Long
  12.  
  13. Sub EsperarShell(sCmd As String)
  14.  
  15. Dim hShell As Long
  16. Dim hProc As Long
  17. Dim codExit As Long
  18.  
  19. ' ejecutar comando
  20. hShell = Shell(Environ$("Comspec") & " /c " & sCmd, 2)
  21.  
  22. ' esperar a que se complete el proceso
  23. hProc = OpenProcess(PROCESS_QUERY_INFORMATION, False, hShell)
  24.  
  25. Do
  26. GetExitCodeProcess hProc, codExit
  27. DoEvents
  28. Loop While codExit = STILL_ACTIVE
  29.  
  30. End Sub
  31. 'Ejemplo
  32. Private Sub Command1_Click()
  33. EsperarShell ("calc.exe")
  34. msgbox "termino"
  35. End Sub