DOBON.NETプログラミング道掲示板

■34777 / 4階層)  コンソールではなくテキストボックスに文字列を出力したい
□投稿者/ スイカ 一般人(4回)-(2021/06/20(Sun) 15:49:08)
  • アイコンNo34773に返信(魔界の仮面弁士さんの記事)
    あれから色々調べて見たのですが、どうしても理解できずに解決できませんでしたので、
    再度質問させていただきました。
    よろしくお願いします。


    【質問】
     下記のコードでエラーが出ないようにするには、実際にどういうコードを追加すればいいのでしょうか?


    【状況】
     ・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()

    p.StartInfo.UseShellExecute = False
    p.StartInfo.RedirectStandardOutput = True
    p.StartInfo.RedirectStandardError = True

    AddHandler p.OutputDataReceived, AddressOf P_OutputDataReceived
    AddHandler p.ErrorDataReceived, AddressOf P_ErrorDataReceived

    p.StartInfo.FileName = System.Environment.GetEnvironmentVariable("ComSpec")
    p.StartInfo.RedirectStandardInput = False
    p.StartInfo.CreateNoWindow = True
    p.StartInfo.Arguments = "/c " & strcmd

    p.Start()

    p.BeginOutputReadLine()
    p.BeginErrorReadLine()

    p.WaitForExit()
    p.Close()
    End Sub

    '■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


    【コード補足】
     TxtCommand.Textは実行するコマンド(例えばping 192.168.1.1など)が入力されています。
     TxtResult.Textは実行したコマンドの結果を表示するテキストボックスです。

違反を報告
削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[3]: コンソールではなくテキストボックスに文字列を出力したい /魔界の仮面弁士 →Re[5]: コンソールではなくテキストボックスに文字列を出力したい /スイカ Error.jpg/17KB
 
上記関連ツリー

Nomalアイコン コンソールではなくテキストボックスに文字列を出力したい / スイカ (21/06/09(Wed) 13:29) #34768
Nomalアイコン Re[1]: コンソールではなくテキストボックスに文字列を出力したい / 魔界の仮面弁士 (21/06/09(Wed) 14:00) #34771
  ├Nomalアイコン Re[2]: コンソールではなくテキストボックスに文字列を出力したい / スイカ (21/06/09(Wed) 14:04) #34772
  │└Nomalアイコン Re[3]: コンソールではなくテキストボックスに文字列を出力したい / 魔界の仮面弁士 (21/06/09(Wed) 14:17) #34773
  │  ├Nomalアイコン Re[4]: コンソールではなくテキストボックスに文字列を出力したい / スイカ (21/06/09(Wed) 14:40) #34774
  │  └Nomalアイコン コンソールではなくテキストボックスに文字列を出力したい / スイカ (21/06/20(Sun) 15:49) #34777 ←Now
  │    └Nomalアイコン Re[5]: コンソールではなくテキストボックスに文字列を出力したい / スイカ (21/06/20(Sun) 15:51) #34778 Error.jpg/17KB
  └Nomalアイコン Re[2]: コンソールではなくテキストボックスに文字列を出力したい / スイカ (21/06/20(Sun) 16:21) #34779

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Mode/  Pass/


- Child Tree -