【状況】 ・VisualStudioから「開始」を押して実行して下記のコードで「Button1」をクリックした時に、 「Private Sub P_OutputDataReceived(」内で添付写真のエラーが出ます。 ・ビルドして出来たexeを実行して「Button1」をクリックした時はエラーは出ず正常に完了します。
【コード】 '■1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Call Main(TxtCommand.Text) 'TxtCommand.Textは「ping 192.168.1.1」が入力されています End Sub
'■2 Private Sub Main(strcmd As String) Dim p As New System.Diagnostics.Process()
'■3 Private Sub P_OutputDataReceived(sender As Object, e As System.Diagnostics.DataReceivedEventArgs) If e.Data <> "" Then Me.TxtResult.AppendText(e.Data) '◆ここが赤いバツになって添付写真のエラーが出ます Me.TxtResult.AppendText(vbCrLf) End If End Sub
'■4 Private Sub P_ErrorDataReceived(sender As Object, e As System.Diagnostics.DataReceivedEventArgs) If e.Data <> "" Then Me.TxtResult.AppendText(e.Data) Me.TxtResult.AppendText(vbCrLf) End If End Sub
Using P As New System.Net.NetworkInformation.Ping() Dim r = P.Send("www.yahoo.co.jp") If r.Status = System.Net.NetworkInformation.IPStatus.Success Then TextBox1.Text = $"Reply from {r.Address}:bytes={r.Buffer.Length} time={r.RoundtripTime}ms TTL={r.Options.Ttl}" Else TextBox1.Text = "失敗: " & r.Status End If End Using https://dobon.net/vb/dotnet/internet/ping.html
【■変更前】 > Private Shared Sub p_OutputDataReceived(sender As Object, _ > e As System.Diagnostics.DataReceivedEventArgs) > '出力された文字列を表示する > Console.WriteLine(e.Data) > End Sub
【■変更後】 > Private Shared Sub p_OutputDataReceived(sender As Object, _ > e As System.Diagnostics.DataReceivedEventArgs) > '出力された文字列を表示する > 'Console.WriteLine(e.Data) > '下だとエラー > 'TextBox1.Text = e.Data > '検索して下記のようにするといいと見つけましたがフォームの移動すらできなくなる > Me.Invoke(Sub() Me.TextBox1.Text = e.Data) > End Sub