А ТЕПЕРЬ описываю
ПРАВИЛЬНЫЙ СПОСОБ перенаправления ввода\вывода любого процесса
в стандартные потоки используемые в консоли VS консольного приложения на
vb.NET
Код:

Dim MyProcess As New Process
'
MyProcess.StartInfo.FileName = "7z"
' StartInfo.FileName - если приложение не описанно в sys.переменной PATH,
' то указывать полное имя к программе... н\п "C:\Program Files\7-Zip\7z.exe"
MyProcess.StartInfo.UseShellExecute = False
' это праметр определяет оболочку которая необходима для запуска процесса
' это приблуда для кроссплатформенности - ЗАБЫЛИ тупо всегда назначаем "False"
' тобишь открываем Wind-ой
MyProcess.StartInfo.RedirectStandardInput = True
' перенаправление потока ВВОД, и дискриптора 2 на стандартный поток реального времени
MyProcess.StartInfo.RedirectStandardOutput = False
' перенаправление потока ВЫВОД нам ни в коем случае не нужно... так что назначаем "False"
' и не забываем что речь идет о процессе у него все зеркально пользователю... т.е. то что пользователю ВЫВОД
' то процессу ВВОД
MyProcess.Start()
' запуск процесса.
Console.ReadKey()
' остановка на получении NextKey в консоли... для того чтоб она не закрылась
Сравним с решением при помощи API;
Admiral,
научи код красиво выкладывать как у тя... все с цветом как надо