• Domingo 22 de Diciembre de 2024, 09:39

Autor Tema:  Ejecutar Comandos De Ms-dos  (Leído 3497 veces)

ROBER.29

  • Miembro MUY activo
  • ***
  • Mensajes: 421
    • Ver Perfil
    • http://www.contrapixel.com
Ejecutar Comandos De Ms-dos
« en: Viernes 30 de Enero de 2004, 11:44 »
0
Hola compañeros,

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

Muchas gracias.

Saludos a todos.
Roberto García
Moderador de Visual Basic.
Gerente
[contra]PixeL S.L.
Valladolid

ROBER.29

  • Miembro MUY activo
  • ***
  • Mensajes: 421
    • Ver Perfil
    • http://www.contrapixel.com
Re: Ejecutar Comandos De Ms-dos
« Respuesta #1 en: Viernes 30 de Enero de 2004, 11:53 »
0
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

Es el truco 4.

Un saludo.
Roberto García
Moderador de Visual Basic.
Gerente
[contra]PixeL S.L.
Valladolid

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Ejecutar Comandos De Ms-dos
« Respuesta #2 en: Viernes 30 de Enero de 2004, 14:15 »
0
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 que a lo mejor te interesa.

Chao.

ROBER.29

  • Miembro MUY activo
  • ***
  • Mensajes: 421
    • Ver Perfil
    • http://www.contrapixel.com
Re: Ejecutar Comandos De Ms-dos
« Respuesta #3 en: Viernes 30 de Enero de 2004, 16:37 »
0
Gracias pero eso ya lo sabia.

Muchas gracias de todas formas.

Saludos.
Roberto García
Moderador de Visual Basic.
Gerente
[contra]PixeL S.L.
Valladolid

QliX=D!

  • Miembro MUY activo
  • ***
  • Mensajes: 214
    • Ver Perfil
Re: Ejecutar Comandos De Ms-dos
« Respuesta #4 en: Viernes 30 de Enero de 2004, 19:42 »
0
Podes directamente con la API Registrar componentes, lo cual te ahorraria hacer la Shell que queda... Feo :D
QliX=D! - From the top of Tsunami