如何在无窗口命令行上模拟击键

时间:2017-07-04 07:15:05

标签: c# signals keystroke

我将击键传递到无窗口命令行时出现问题。

我按照以下方式开始这个过程:

  public partial class BatchRun : Form
{        
    public void StartProcess(Process name)
    {
        ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.FileName = sMasterBATname;
        startInfo.UseShellExecute = false;
        startInfo.CreateNoWindow = true;
        startInfo.RedirectStandardOutput = true;
        name.StartInfo = startInfo;
        name.OutputDataReceived += new DataReceivedEventHandler(StandardOutputHandler);
        name.StartInfo.RedirectStandardInput = true;
        name.Start();
        name.BeginOutputReadLine();
    }
}

sMasterBATfile是一个批处理文件,其中包含许多要执行的exe命令。每个exe行后面都有一个暂停。这是必要的,因为我需要验证每个被重定向的行,有时exe执行得如此之快,我没有时间检查它是否有错误。

输出被重定向到部分类,如下所示。

 public partial class BatchRun : Form
{
    public void outLineValidation(string text)
    {
     if (text != null && !String.IsNullOrWhiteSpace(text))
     {
      if (text.Contains("Critical error") || text.Contains("Fatal error"))
       {
              Do something 
       }
      else if (text.Contains("Complete run time"))
       {
         This is where I need to pass or 
         simulate a keystroke to be passed to the process that executes 
         exe files so that next exe can be executed. 
       } 
     }  
    }
 }

我做了一些研究,但找不到任何对我有用的东西。我所能找到的只是我需要向前移动窗口或传递消息等但似乎没有工作。

请有人帮忙请解释,好像我6岁了。

希望这是有道理的。

0 个答案:

没有答案