Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для RUVATA

Старожил


Сообщения: 301
Благодарности: 16

Профиль | Отправить PM | Цитировать


А ТЕПЕРЬ описываю ПРАВИЛЬНЫЙ СПОСОБ перенаправления ввода\вывода любого процесса
в стандартные потоки используемые в консоли 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,
научи код красиво выкладывать как у тя... все с цветом как надо

-------
Одно дело искать сиюминутное решение, другое - искать знания...
вот и думай - что ты ищешь...


Последний раз редактировалось RUVATA, 25-08-2010 в 16:48.


Отправлено: 16:38, 25-08-2010 | #10