监视进程输出而不从shell中窃取它

时间:2010-10-05 16:36:02

标签: vb.net redirectstandardoutput

我有一个shell程序,可以将输出发送到标准输出和标准错误。我正在尝试在VB.net中编写一个程序,该程序实时检查输出并在GUI中显示汇总信息。我还希望shell程序像往常一样继续在命令提示符下显示其输出。我不想只是将输出推到文本框中,因为它似乎失去了它的颜色格式。

我编写了检查输出的代码,但是它有效,但它有消除shell窗口输出的副作用。这是我用来开始重定向输出的代码:

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等的处理程序来进行我的分析。

编辑:看起来还有另外一个问题,但答案没有出现在任何地方:Capture and display console output at the same time抱歉重新发布。

1 个答案:

答案 0 :(得分:0)

你可以使用这100%的作品,但它只会显示结果.....

[如何在vb.net中显示shell结果] '创建1个textbox1 '创建1按钮1 'create 1 richtextbox1

在该程序的启动目录中的

'使文件可以123.text

Dim read As 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