如何将命令发送到正在运行的程序并从中获取结果?

时间:2015-01-30 20:47:27

标签: c# windows-applications

我的应用程序与命令行应用程序相同。我键入命令,它向服务器发送命令并在屏幕上显示结果。 我的应用程序是Windows上的可执行应用程序,有两个功能可以帮助我轻松工作:记录脚本和播放脚本。 现在,我想将命令发送到正在运行的应用程序并引发播放脚本按钮以对其运行发送命令。 有没有办法用c#语言解决这个问题?

1 个答案:

答案 0 :(得分:0)

糟糕,我希望我能正确理解你。我假设您有一个与某个服务器交互的第三方应用程序,并由两个不同的命令,即播放和记录操作。您想编写一个以某种方式调用这些命令的新应用程序,问题在于此调用。

你可以用C#来做,但你的方式取决于你操作程序的方式。我会告诉你一些情况:

  • 该程序是一个命令行工具。运行程序时,通过命令行参数发送输入。通过重定向程序的标准输出来收集输出。查看System.Diagnostics.Process.Start及其参数,即包含参数和输入/输出重定向选项的ProcessStartInfo
  • 该程序是一个不通过命令行参数操作的控制台工具。使用与上面相同的内容,但通过输入重定向提供输入。
  • 该程序是一个GUI程序,无法以文本形式获取输入。这种情况很可能就是这种情况。在这里,您必须找到一种特定的方式来操作程序,例如使用称为挂钩的高级技术。或者您可以发送命令,就像用户发出命令一样。看看System.Windows.Forms.SendKeys方法。它可能有所帮助。如何在这里得到一个结果是一个很大的问题。您可以解析屏幕或监视程序的某些状态或其他内容。没有现成的解决方案给大家。