从Windows运行EXE从传入静态输入

Bad*_*ral 2 c# console-application

目前我有一个运行的进程,但它需要用户输入

y <return>
<return>
Run Code Online (Sandbox Code Playgroud)

我使用的代码如下

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();
Run Code Online (Sandbox Code Playgroud)

我想硬输入这些输入.有什么建议吗?谢谢

Ben*_*igt 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();
Run Code Online (Sandbox Code Playgroud)