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

C# 如何向正在运行的程序发送命令并从中获取结果?,c#,windows-applications,C#,Windows Applications,我有一个与命令行应用程序相同的应用程序。我输入命令,它将命令发送到服务器并在屏幕上显示结果。 我的应用程序是windows上的一个可执行应用程序,有两个功能可以帮助我轻松工作:录制脚本和播放脚本。 现在,我想向正在运行的应用程序发送命令,并启动“播放脚本”按钮在其上运行发送的命令。 有什么办法可以用c语言解决这个问题吗?哦。我希望我理解正确。我假设您有一个与某个服务器交互的第三方应用程序,它由两个不同的命令(play和record)操作。您希望编写一个新的应用程序,以某种方式调用这些命令,问题在

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

哦。我希望我理解正确。我假设您有一个与某个服务器交互的第三方应用程序,它由两个不同的命令(play和record)操作。您希望编写一个新的应用程序,以某种方式调用这些命令,问题在于这种调用

你可以用C语言来做,但是你做的方式取决于你操作程序的方式。我将向您展示一些案例:

  • 该程序是一个命令行工具。当程序运行时,通过命令行参数发送输入。通过重定向程序的标准输出来收集输出。查看
    System.Diagnostics.Process.Start
    及其参数,即
    ProcessStartInfo
    ,其中包含参数和输入/输出重定向选项
  • 该程序是一个控制台工具,不通过命令行参数操作。使用与上面相同的方法,但通过输入重定向提供输入
  • 该程序是一个GUI程序,无法获取文本形式的输入。很可能是这样。在这里,您必须找到一种特定的方法来操作程序,例如使用一种称为挂钩的高级技术。或者,您可以发送命令,就像用户正在发出命令一样。查看
    System.Windows.Forms.SendKeys
    方法。这可能会有帮助。如何在这里得到结果是一个大问题。您可以解析屏幕或监视程序的某些状态或其他内容。这里的每个人都没有现成的解决方案
感谢您的回复Aneri,我成功地在c#中启动了一个exe应用程序,并将与Calculator.exe和notepad.exe相同的键或字符发送给它。但我有一个应用程序,我不能发送任何密钥或这没有任何行为。我如何知道我的应用程序具有与c#应用程序进行交易的功能?