我寫一個應用程序來管理其他控制檯應用程序(遊戲服務器 - jampded.exe
)當它在控制檯中運行寫入數據,並沒有問題讀取命令控制檯應用程序並不想讀取標準輸入
。
在我的應用程序重定向標準I/O操作的StreamWriter和StreamReader的
Public out As StreamReader
Public input As StreamWriter
Dim p As New Process()
p.StartInfo.FileName = My.Application.Info.DirectoryPath & "\" &
TextBox6.Text 'PATH TO JAMPDED.EXE
p.StartInfo.Arguments = TextBox1.Text 'EXTRA PARAMETERS
p.StartInfo.CreateNoWindow = True
p.StartInfo.RedirectStandardInput = True
p.StartInfo.RedirectStandardOutput = True
p.StartInfo.UseShellExecute = False
p.Start()
input = p.StandardInput
out = p.StandardOutput
Dim thr As Thread = New Thread(AddressOf updatetextbox)
thr.IsBackground = True
thr.Start()
Sub updatetextbox()
While True
While Not out.EndOfStream
RichTextBox1.AppendText(out.ReadLine())
RichTextBox1.AppendText(vbNewLine)
End While
End While
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) _
Handles Button2.Click
input.WriteLine(TextBox4.Text)
TextBox4.Text = ""
input.Flush()
End Sub
當我按下Button2
應該寫STD /我的文字從我的文本框,jampded.exe
行爲就像是不寫。此外,輸出在啓動時運行良好,之後在緩衝區中存在大量數據時很少添加新行。
我做錯了什麼,還是應用程序的錯?
感謝您的回覆+1。儘管我發現了STD輸入的解決方法,但即使使用您的代碼,標準輸出仍然大大延遲。 – Disa