如何在后台工作的流程中模拟“输入键”?

时间:2019-04-15 09:46:20

标签: c# process

在我的可执行文件Process中,我有几行Console.ReadLine。如何在Enter key press类中通过Process.InputStream(模拟用户的Enter键)? enter键在输入字符串中应如何显示?

// in string input I want to have information, that "user" pressed enter key  
this.Process.StandardInput.Write(input);

我的流程在后台运行,并且已设置

this.Process.StartInfo.UseShellExecute = false;

标志。

编辑:

在我的exe文件中,存在类似的代码:

   for (int i = 0; i < 3; i++)
   {
       array[i] = Console.ReadLine();
   }

我想在input string的{​​{1}}上模拟Enter键

1 个答案:

答案 0 :(得分:1)

您可以使用WriteLine()

this.Process.StandardInput.WriteLine();

或者您可以手动编写换行符序列。

this.Process.StandardInput.Write(this.Process.StandardInput.NewLine);

两种方法都将AutoFlush设置为true

this.Process.StandardInput.AutoFlush = true;

或在编写后手动刷新。

this.Process.StandardInput.Flush();

如果您想一次发送更多行,只需一次发送更多换行符,然后再发送任何想要的文本即可。

this.Process.StandardInput.Write(  "a" + this.Process.StandardInput.NewLine
                                 + "b" + this.Process.StandardInput.NewLine);