我有一个VB问题,虽然我之前看过一些类似的问题,但我有点麻烦。我想知道是否可以从使用VB启动的CMD.exe中运行的外部程序读取每行输出。这是扭曲:我希望在外部程序仍在运行时读取此信息,而不是它已经完成。
我可能会对什么构成“输出”感到困惑,所以让我举一个有更多知识来指导我的人的例子。
在我的VB程序中假设我将此命令传递给CMD.exe:
someprogram.exe -param1 ABCD -param2 1234
现在假设someprogram.exe启动,并且当它完成其工作时,CMD中的以下应用程序:
输出线1
输出线2
输出线3
...
虽然someprogram.exe仍在运行,但我想阅读上面的每个输出行(如果这是正确的术语),以便我的VB程序可以将这些信息汇总给用户。我见过使用commandexecutor和其他人使用Environment.GetCommandLineArgs的例子,但我看到的每个例子都是在外部程序结束后读取输出。
有可能在VB中做我要求的吗?
答案 0 :(得分:1)
如果您的应用程序使用Process.Start启动进程,您应该能够通过在ProcessInfo上设置RedirectStandardOuput并读取结果流来拦截输出流。有关c#示例,请参阅this post。