0
多分私はここで間違ったアプローチをしています。私は装置を構成するプログラムを実行する必要があります。これは "バックグラウンド"とその基本的に非バッチプログラムで実行されなければならないので、ユーザーからのループで一定の入力を受け取ります。私は以下のコードを書いてプロセスを起動し、そこから読み書きを試みましたが、動作しません。プログラムが正しく起動していることは分かっていますが、プログラムが終了するまでは出力がありません。間違って何かしていますか?VB.Net非バッチプログラムを実行するプロセス
Dim proc As Process
Dim prompt As String
Public Sub New()
proc = New Process()
AddHandler proc.OutputDataReceived, AddressOf CallbackDataReceived
AddHandler proc.ErrorDataReceived, AddressOf CallbackErrorDataReceived
prompt = ""
Dim pi As ProcessStartInfo = New ProcessStartInfo()
pi.UseShellExecute = False
pi.FileName = "processname and location"
pi.RedirectStandardInput = True
pi.RedirectStandardOutput = True
pi.RedirectStandardError = True
pi.CreateNoWindow = True
proc.StartInfo = pi
proc.EnableRaisingEvents = True
StartProcess()
proc.BeginOutputReadLine()
End Sub
Public Sub StartProcess()
proc.Start()
End Sub
Private Sub CallbackDataReceived(sender As Object, args As System.Diagnostics.DataReceivedEventArgs)
If Not String.IsNullOrEmpty(args.Data) Then
Console.Write(args.Data)
End If
End Sub
Private Sub CallbackErrorDataReceived(sender As Object, args As System.Diagnostics.DataReceivedEventArgs)
If Not String.IsNullOrEmpty(args.Data) Then
Console.Write(args.Data)
End If
End Sub
これは問題ではなく、私の提出の誤植です。私のコードにはもともと「Not」がありました。私は新しいラインを送ろうとしましたが、ダイスはまだありません。イベントは起動しません。 –
@DanielMossあなたのコードをコピー/ペーストし、Notを付けてIpConfigと呼んでいました。タイプミスがあった場合、私は同じプログラムをまったくデバッグしているのだろうかと思います。 –
異なる問題。 IPConfigはバッチコマンドであり、実行を終了します。サーバーにtelnetのようなものを使用しようとしており、コマンドを継続して送信し、入力を受けたいとします。プログラムのように入力ループがあります。 –