※ ChatGPTを利用し、要約された質問です(原文:VBでコンソールアプリの出力を取得したいのですが)
VBでコンソールアプリ出力取得方法について
このQ&Aのポイント
VBでコンソールアプリの出力を取得する方法について質問があります。
他のアプリでは問題なく取得できたのですが、目的のアプリでは取得できません。
ソースコードを見たところ、目的のアプリでは「fputs」を使用して出力しているようですが、これが原因なのでしょうか?
ネット上で入手したコマンドプロンプト上で使うアプリをGUIで操作できるようにしたく出力を取得したいのですが出来ません。
ネットで出力の取得方法を調べて下記のようにしているのですがどうやっても取得できません・・・
(ipconfig や dir 等は問題なく取得できたのですが・・・)
VBは2008です
Dim p As New Process()
p.StartInfo.FileName = "cmd.exe" ' 実行するファイル
p.StartInfo.Arguments = "aaa.exe" ' 目的のアプリ
p.StartInfo.CreateNoWindow = True ' コンソールを開かない
p.StartInfo.UseShellExecute = False ' シェル機能を使用しない
p.StartInfo.RedirectStandardOutput = True ' 標準出力をリダイレクト
p.Start() ' アプリの実行開始
Dim output As String = p.StandardOutput.ReadToEnd() ' 標準出力の読み取り
output = output.Replace(vbCr + vbCrLf, vbLf) ' 改行コードの修正
TextBox1.Text = output ' [出力]ウィンドウに出力
試しに自分で文字を表示するだけのコンソールアプリを作成して試したのですがそれは取得できました。
目的のアプリが特殊なのでしょうか? ソースがあったので見てみたのですがC言語だった為詳しくわからなかったのですが、出力は「Console.WriteLine」ではなく「fputs」を使用して出力していました・・・これが原因なのでしょうか?
どうにかして、出力を取得する方法はないものでしょうか?
よろしくお願いします。
お礼
回答ありがとうございます。 fputs(str, stderr) 上記のように書いてあり「stderr」とご指摘と関係ありそうでしたので、早速変更してみたところ見事に表示できました!!! この問題に2日悩んでいました。即、解決していただき本当にありがとうございました。やっとこれで進めます。ペコm(_ _;m)三(m;_ _)mペコ