【问题标题】:How to send command to a running program and get result from it?如何向正在运行的程序发送命令并从中获取结果?
【发布时间】:2015-03-30 10:15:42
【问题描述】:

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

【问题讨论】:

标签: c# windows-applications


【解决方案1】:

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

您可以在 C# 中执行此操作,但执行方式取决于您操作程序的方式。我将向您展示一些案例:

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

【讨论】:

  • 感谢您的回复 Aneri,我成功地在 c# 中启动了一个 exe 应用程序,并像 Calculator.exe 和 notepad.exe 一样向其发送密钥或字符。但是我有一个应用程序,我不能发送任何密钥,或者它没有任何行为。我如何才能知道我的应用程序是否具有这种与 c# 应用程序进行交易的能力?
猜你喜欢
  • 2010-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 2014-08-30
相关资源
最近更新 更多