Мониторинг вывода процесса без кражи его из оболочки - PullRequest
1 голос
/ 05 октября 2010

У меня есть программа оболочки, которая отправляет вывод на стандартный вывод и стандартную ошибку.Я пытаюсь написать программу на VB.net, которая проверяет вывод в режиме реального времени и представляет обобщенную информацию в графическом интерфейсе.Я также хочу, чтобы программа оболочки продолжала отображать свой вывод в командной строке, как обычно.Я не хочу просто пихать вывод в текстовое поле, потому что тогда, кажется, он теряет свое цветовое форматирование.

Я написал код для проверки вывода, и он работает, но у него есть побочный эффект:устранение вывода в окне оболочки.Вот код, который я использую, чтобы начать перенаправление вывода:

Dim info As New ProcessStartInfo()
info.FileName = "foo.bat"
info.UseShellExecute = False
info.RedirectStandardError = True
info.RedirectStandardOutput = True
revProcess = Process.Start(info)
revProcess.BeginOutputReadLine()
revProcess.BeginErrorReadLine()

А затем у меня есть обработчики для revProcess.OutputDataReceived и т. Д., Чтобы выполнить мой анализ.

Редактировать: похоже, был другойвопрос для этого, но ответы никуда не делись: Захват и отображение вывода на консоль одновременно извините за репост.

1 Ответ

0 голосов
/ 23 февраля 2013

Вы можете использовать это 100% работ, но он покажет вам только результаты .....

[как показать результаты оболочки в vb.net] 'создать 1 текстовое поле1 'создать 1 кнопку1 'create 1 richtextbox1

'в каталоге запуска этой программы сделать файл может 123.text

Дим читается как System.IO.StreamReader read = File.OpenText (Application.StartupPath & "\ 123.text")

    Shell("cmd.exe /c" & TextBox1.Text + ">123.text")
    Do Until read.EndOfStream
        RichTextBox1.Text = read.ReadLine & vbCrLf
    Loop

также код по этой ссылке: mediafire.c (o) m /? 3i47vg8seani3j3 или: pastebin.c (o) m / iEhv61jG

...