none
外部アプリからの出力の取得、表示 RRS feed

  • 質問

  •  はじめまして、

    VS2010pro on the VISTAで開発をしていますが、以下のソースでcompilerから出力されるストリームがGUI上のテキストボックスに表示できません。ご教授いただけると幸いです。

                try
                {
                    String items="";
                    foreach(object listitem in checkedListBox1.CheckedItems)
                    {
                        items = items + " " + listitem.ToString();
                    }
                    Process proc3 = new Process();
                    proc3.StartInfo.RedirectStandardOutput = true;
                    proc3.StartInfo.UseShellExecute = false;
                    proc3.StartInfo.FileName = "compiler.exe";
                    proc3.StartInfo.WorkingDirectory = textBox1.Text;
                    proc3.StartInfo.Arguments = comboBox1.SelectedText.ToString()+ items.ToString();
                    proc3.Start();
                    StreamReader strd=proc3.StandardOutput;
                    textBox2.Text = strd.ReadToEnd();
                    proc3.Close();
                    listview();
                }

    2014年5月7日 6:20

回答

  • "compiler.exe" は標準出力(StandardOutput)に出力しますか? 標準エラー出力(StandardError)だったりしませんか?
    2014年5月7日 9:05
  • "compiler.exe" は標準出力(StandardOutput)に出力しますか? 標準エラー出力(StandardError)だったりしませんか?

    今回、標準出力及び標準エラー出力も出力してみたら、標準エラー出力から出力がありました。

    前回まで標準出力から出力されていたので、灯台もと暗しでした。ありがとうございました。

    • 回答としてマーク 2014年5月7日 10:32
    2014年5月7日 10:32

すべての返信

  • textBox2.Text = strd.ReadToEnd();

    string text = strd.ReadToEnd();
    textBox2.Text = text;

    に変えておいて、textBox2.Text = textの行にブレークポイントを設定してデバッグ実行してみてください。

    ブレークしますか?

    ブレークしたなら、textの値を自動変数ウィンドウやウォッチウィンドウで確認してみてください。

    2014年5月7日 6:38
  • 雀 さま よろしく。

    proc3.StartInfo.WorkingDirectory = textBox1.Text; ですが、
    textBox1.Text で指定した作業ディレクトリが存在しますか?
    実行ファイル "compiler.exe" は見付けられていますか?

    最初は、Try を外して、デバッグした方が、エラーを見付けやすいと思うのですが。

    勘違いでしたら、お許し下さい。

    2014年5月7日 7:02
  • "compiler.exe" は標準出力(StandardOutput)に出力しますか? 標準エラー出力(StandardError)だったりしませんか?
    2014年5月7日 9:05
  • ShiroYuki_Motさん、ありがとうございます。

    作業ディレクトリー及びcompiler.exeに該当する実行ファイルは、見つかっています。

    Tryを外すデバック方法、かなり有効だと気付きました。ありがとうございます。

    2014年5月7日 10:27
  • "compiler.exe" は標準出力(StandardOutput)に出力しますか? 標準エラー出力(StandardError)だったりしませんか?

    今回、標準出力及び標準エラー出力も出力してみたら、標準エラー出力から出力がありました。

    前回まで標準出力から出力されていたので、灯台もと暗しでした。ありがとうございました。

    • 回答としてマーク 2014年5月7日 10:32
    2014年5月7日 10:32
  • Hongliangさん、ありがとうございます。

    ブレークしたtextの値は、nullでした。今回標準出力されていないようです。ありがとうございました。

    2014年5月7日 10:46