SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: ROBER.29 en Viernes 30 de Enero de 2004, 11:44

Título: Ejecutar Comandos De Ms-dos
Publicado por: ROBER.29 en Viernes 30 de Enero de 2004, 11:44
Hola compañeros,

Como puedo ejecutar el comando regsvr32 desde código de Visual Basic?

Muchas gracias.

Saludos a todos.
Título: Re: Ejecutar Comandos De Ms-dos
Publicado por: ROBER.29 en Viernes 30 de Enero de 2004, 11:53
Se pueden ejecutar comandos de MS-DOS de la siguiente forma:

Código: Text
  1.  
  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. MsgBox "El comando ha acabado"
  31.  
  32. End Sub
  33.  
  34. Private Sub Command1_Click()
  35. EsperarShell (Text1.Text)
  36. End Sub
  37.  
  38.  

Este ejemplo está sacado de la siguiente página:

http://support.microsoft.com/?scid=kb;es-es;E11075 (http://support.microsoft.com/?scid=kb;es-es;E11075)

Es el truco 4.

Un saludo.
Título: Re: Ejecutar Comandos De Ms-dos
Publicado por: Brroz en Viernes 30 de Enero de 2004, 14:15
Hola Rober.29.

Con Shell sin más también vale, a no ser que necesites ejecutar el registro de forma síncrona, claro, en cuyo caso la filosofía a seguir es la del ejemplo.

Seguramente te interese ejecutar regsvr32 con el modificador /S para evitar el mensaje.

Échale un vistazo http://foros.solocodigo.com/index.php?showtopic=4489 (http://foros.solocodigo.com/index.php?showtopic=4489) que a lo mejor te interesa.

Chao.
Título: Re: Ejecutar Comandos De Ms-dos
Publicado por: ROBER.29 en Viernes 30 de Enero de 2004, 16:37
Gracias pero eso ya lo sabia.

Muchas gracias de todas formas.

Saludos.
Título: Re: Ejecutar Comandos De Ms-dos
Publicado por: QliX=D! en Viernes 30 de Enero de 2004, 19:42
Podes directamente con la API Registrar componentes, lo cual te ahorraria hacer la Shell que queda... Feo :D