私は次のコードを使用しています
System::Diagnostics::Process^ p = gcnew System::Diagnostics::Process();
p->StartInfo->FileName = "tnccmd.exe";
p->StartInfo->UseShellExecute = false;
p->StartInfo->RedirectStandardInput = true;
p->StartInfo->RedirectStandardOutput = true;
p->Start();
System::IO::StreamWriter^ tnc_stdin = p->StandardInput;
System::IO::StreamReader^ tnc_stdout = p->StandardOutput;
tnc_stdin->WriteLine("connect i 127.0.0.1");
String^ prg_output = tnc_stdout->ReadToEnd();
stdout私の問題は、正しく読めないことです。簡単に書き込むことができますがstdin、エラーチェックコードを実装しようとしていますが、機能しません。
私が使用しているプログラムはstdout、コマンドラインで実行させても書き込みができないようです。デフォルトで付属してbugいるを再現できます。コマンドプロンプトでを変更すると、通常はに表示されません。ftp.exeWindows XP->FileNameftp.exeftp.exeftp>prg_output
プロンプトはある種のものを使用する必要があり、windows shell curses問題を混同している可能性があることがわかりました。
connect i 127.0.0.1通常、私が受けるはずの指示の直後ですconnecting to 127.0.0.1...が、何も受け取りません。
私が間違っていることについてのヒントはありますか?stdout私が知らない別の種類はありますか?
編集
と同じように、書く行が複数あるため、引数を使用できませんftp.exe。また、ftp.exedirなどのコマンドを入力すると出力されます。少なくとも、不明なコマンドを記述したときに出力されますが、について文句を言いますInvalid command。