La Web del Programador: Comunidad de Programadores
 
    Pregunta:  1145 - INTERFACE DOS
Autor:  Marger Arteaga
Necesito Saber como puedo hacer para ejecutar una aplicacion MS-DOS y Capturar la respuesta de este en Visual Basic, Por Ejemplo: Si Utilizo PkZip, Interceptar la solicitud de un nuevo Disco, presionar Enter y pasar esta instruccion al programa DOs.. Todo esto sin visualizar la Ventana Ms-Dos. Utilizando API se puede Detener la Ejecución de la Aplicación Visual hasta que la aplicación DOS Termine, pero lo que desea es capturar la respuesta del DOS sin visualizar, esta Ventana..

Gracias
Nicaragua

  Respuesta:  Joan Miquel Espada Sàbat
Yo también tuve este problema, y te voy e explicar como lo resolvi desde Visual Basic. Primero corres el programa en VB, este con la función:
shell("command.com /c miprog.exe > salida.txt",0)
esta función devuelve un tipo variant; tu recoges este valor y debes evaular el resultado. El Shell() se utiliza para llamar cualquier archivo *.exe el ejemplo más tipico es a=shell("c:\windows\calc.exe",1), donde el último valor determina en que tipo de ventana aparecera, en tu caso debe ser 0, el /c del command.com se utiliza para que cuando llamas a la consolo no te aparezca por pantalla, así el proceso parecerá más limpio. Una vez ejecutada la función debes evuluar el resultado, si te complace solo tendrás que recoger el contenido del fichero *.txt, ya que lo que haces es un direccionamiento del resultado del fichero. Prueba primero a redireccionar en la línea de comandos, piensa que si el ejecutable pide una tecla no funcionara desde VB, el ejecutable bajo DOS solo puede recibir argumentos desde la línea de comandos!!!
Espero que te funcione. Si tienes problemas avisame, un cordial saludo, Joan M. Espada