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 回答