私は次のコードを使用しています
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.exe
Windows XP
->FileName
ftp.exe
ftp.exe
ftp>
prg_output
プロンプトはある種のものを使用する必要があり、windows shell curses
問題を混同している可能性があることがわかりました。
connect i 127.0.0.1
通常、私が受けるはずの指示の直後ですconnecting to 127.0.0.1...
が、何も受け取りません。
私が間違っていることについてのヒントはありますか?stdout
私が知らない別の種類はありますか?
編集
と同じように、書く行が複数あるため、引数を使用できませんftp.exe
。また、ftp.exe
dirなどのコマンドを入力すると出力されます。少なくとも、不明なコマンドを記述したときに出力されますが、について文句を言いますInvalid command
。