获取外部控制台应用程序输出到RichTextBox

时间:2014-12-25 17:34:04

标签: vb.net console

我使用VB.Net Shell()命令启动我尚未创建的控制台应用程序。我想从我的表单中获取从该控制台到RichTextBox的行。这应该是可能的,因为我看过许多应用程序都这样做。请提供一些可能对我有帮助的信息或任何程序。我试图查看外部应用程序是否创建了日志文件,但它没有。

这是我开始的方式。我应该添加什么,以及在何处返回输出?

Try
        writer.WriteLine(RichTextBox1.Text)
        writer.Close()
        Shell(CurDir() & "\yelloeye.exe .\new.demo")
Catch ex As Exception
        MsgBox(ex.Message)
End Try

1 个答案:

答案 0 :(得分:0)

这是一个使用@Plutonix提到的RedirectStandardOutput属性的示例,它将ping SO并在RichTextBox中显示结果。只需替换.exe名称和参数(如果有)以满足您的需求。

Private Sub ShellToRTB()
    Dim p As New Process()
    p.StartInfo.FileName = "ping.exe"
    p.StartInfo.Arguments = "www.stackoverflow.com"
    p.StartInfo.UseShellExecute = False
    p.StartInfo.RedirectStandardOutput = True
    p.Start()
    RichTextBox1.Text = p.StandardOutput.ReadToEnd()
    p.WaitForExit()
End Sub

结果:

enter image description here