Podemos hacerlo con Shell, en mi caso yo lo hice con Shell, monté un fomulario con un textbox donde recogía el comando y un botón ejecutar.
(También puse una label para saber por donde pasaba, pues es muy vulnerable a errores).
Esto es el código que está en el evento click del botón:
Sub Button1Click(sender As Object, e As EventArgs)
‘Shell(”cmd”, AppWinStyle.NormalFocus) – Opciones de shell
try
Shell(contenidoCaja)
label1.Text=”…todo bien”
Catch noHayNada As System.NullReferenceException
label1.Text=”Escribe algo, membrillo”
Catch comandoErroneo As System.IO.FileNotFoundException
label1.Text=”Debe ser un comando valido de ms-dos”
Catch Errores As Exception
label1.Text=”Ni idea, algo ha fallado”
End Try
End Sub
Le he puesto un control de errores pues, si lo dejas vacio o con cualquier problema de sintaxis da error y te saca del programa. Comentar que con Shell no se puede capturar lo que devuelve ms-Dos.
Para poder ejecutar comandos y capturar lo que devuelve tendríamos que realizarlo con:
ProcessStartInfo()
y capturarlo en un
System.IO.StreamReader = x.StandardOutput
Cuando yo lo probé me funcionó para algunos comandos de msdos pero no para los que yo quería.
Os pongo un enlace a una web con un ejemplo:
http://micsharp.wordpress.com/2008/08/14/capturar-salida-de-un-proceso-cmd-ping/