プロが教えるわが家の防犯対策術!

ネット上で入手したコマンドプロンプト上で使うアプリを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」を使用して出力していました・・・これが原因なのでしょうか?

どうにかして、出力を取得する方法はないものでしょうか?
よろしくお願いします。

A 回答 (1件)

fputsの第2引数はどうなっていますか?


http://hitorilife.com/fputs.php

標準出力ではなく標準エラーに出力しているとか。

であれば、VB側は StandardInput → StandardError
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
fputs(str, stderr)
上記のように書いてあり「stderr」とご指摘と関係ありそうでしたので、早速変更してみたところ見事に表示できました!!! この問題に2日悩んでいました。即、解決していただき本当にありがとうございました。やっとこれで進めます。ペコm(_ _;m)三(m;_ _)mペコ

お礼日時:2011/03/08 13:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!