VBでコンソールアプリの出力を取得したいのですが
ネット上で入手したコマンドプロンプト上で使うアプリを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」を使用して出力していました・・・これが原因なのでしょうか?
どうにかして、出力を取得する方法はないものでしょうか?
よろしくお願いします。
補足
(前略) struct _stati64 stbuf; (中略) で、 if(_fstat64(handl,&stbuf)==-1) error("File stat error"); printf("st_sizeのサイズは%d file size = %llu\n",sizeof(stbuf.st_size),(long long)stbuf.st_size); の表示結果が、 st_sizeのサイズは8 file size = 218025604 となり、この数値に0x100000000を加えた値が、実際のファイルサイズ、4,512,992,900 バイトなわけです。 よろしくお願い致します。