VB.net 重定向实时进程输出

标签 vb.net process redirectstandardoutput

我在重定向实时进程输出时遇到问题,我正在运行一个 java .jar 文件 vb.net 进程,我想重定向它。我创建了一个带有 Richtextbox 的控制台表单。 争论很长,所以我不在那里写。代码(它不重定向任何内容):

console.show() 'Console is a console window...
dim p as new process
p.startinfo.filename = java '(java as string: C:\Program Files\java....)
p.startinfo.argument = "-Xms2048M -Xmx4096M...."
p.startinfo.redirectstandardoutput = true
'what is comme there?
console.richtextbox1.text = 'and here is a redirected output, but i want redirect real time.

感谢任何想法和有用的答案!

最佳答案

问题解决了,答案:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

dim p as process()
p.startinfo.filename = "xyz"
p.startinfo.arguments = "...."
p.startinfo.workingdirectory = "some path"
p.startinfo.redirectstandarderror = true
p.startinfo.redirectstandardoutput = true
p.enableraisingevents = True
Application.DoEvents()
AddHandler proc.ErrorDataReceived, AddressOf proc_OutputDataReceived
AddHandler proc.OutputDataReceived, AddressOf proc_OutputDataReceived
p.start()
proc.BeginErrorReadLine()
proc.BeginOutputReadLine()

End Sub

Delegate Sub UpdateTextBoxDelg(text As String)
    Public myDelegate As UpdateTextBoxDelg = New UpdateTextBoxDelg(AddressOf UpdateTextBox)
    Public Sub UpdateTextBox(text As String)
        Console.RichTextBox1.Text += text & Environment.NewLine
        Console.RichTextBox1.SelectionStart = Console.RichTextBox1.Text.Length
        Console.RichTextBox1.ScrollToCaret()
    End Sub

    Public Sub proc_OutputDataReceived(ByVal sender As Object, ByVal e As DataReceivedEventArgs)
        If Me.InvokeRequired = True Then
            Me.Invoke(myDelegate, e.Data)
        Else
            UpdateTextBox(e.Data)
        End If
    End Sub

关于VB.net 重定向实时进程输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26677407/

相关文章:

vb.net - 如何构建将音频文件下载到本地文件夹或从Silverlight应用程序下载文件夹的功能?

Java 进程在 GC 之前停止

c - 我应该为我的应用程序使用进程还是线程?

ocaml - 重定向标准输出 OCaml

c# - 打破从 C# 开始的进程

.net - 来自外部 dll 的数据类型问题

vb.net - 如何使用 vb.net 支持编译 Mono

python - Python2.7 中的 contextlib.redirect_stdout

windows - Vb.net 读取文件后不关闭文件

windows - 批处理文件 - 如果只有一个进程正在运行,如何杀死进程?