2

現在、実行中のプロセスがありますが、ユーザーが入力する必要があります

y <return>
<return>

私が使用しているコードは次のとおりです

ProcessStartInfo psi = new ProcessStartInfo();
string exepath = Directory.GetParent(System.Reflection.Assembly.GetExecutingAssembly().Location).ToString();
Process proc = new Process();
psi.FileName = exepath + @"\lib\dnaml";
psi.RedirectStandardInput = true;
psi.Arguments = "y\r \r";
psi.UserShellExecute = true;
proc.StartInfo = psi;
proc.Start();
proc.WaitForExit();

これらの入力をハードタイプします。何か提案はありますか?ありがとう

4

1 に答える 1

6

プロパティはArgumentsコマンドラインに対応しており、標準入力を介して入力されたデータではありません。

RedirectStandardInputプロパティはパズルの一部です。次に、プロパティに接続されているストリームにも書き込む必要がありStandardInputます。また、標準入力リダイレクトはと互換性がないことに注意してください。動作ShellExecuteする必要がありますCreateProcess。だから設定しUseShellExecute = falseます。

psi.RedirectStandardInput = true;
psi.UseShellExecute = false;
proc.StartInfo = psi;
proc.Start();
proc.StandardInput.WriteLine("y ");
proc.StandardInput.WriteLine();
proc.WaitForExit();
于 2012-11-02T16:07:11.020 に答える