我正在尝试找到一种从父进程运行控制台应用程序的强大方法,并让控制台应用程序与父进程通信。因此,我认为可能的一种方法是通过Process对象启动控制台应用程序,并让应用程序修改一些属性,并显示可以检查的结果消息。我不知道是否可能,或者您如何访问实例化该实例的父进程对象。或者,如果有更好的方法可以这样做。
我在VB.NET Visual Studio 2010,.NET Framework 3.5中编写。
当然我可以将一个文件输出到包含info的磁盘,并在完成该过程后查找它,但这并不像我想的那样优雅。
答案 0 :(得分:0)
感谢Jon Skeet,这让我得到了一个有效的答案。以下是有效代码的示例:
Dim retrieveArgs As String
'Set up arguments to pass
retrieveArgs = "-A -B -C"
Dim si As New ProcessStartInfo
si.FileName = Request.PhysicalApplicationPath & "MyUtility.exe"
si.Arguments = retrieveArgs
si.CreateNoWindow = True
si.UseShellExecute = False
'NOTE: You have to redirect StdOut
si.RedirectStandardOutput = True
Dim p As Process = Process.Start(si)
p.WaitForExit()
Dim result As String = ""
While Not p.StandardOutput.EndOfStream
result = p.StandardOutput.ReadLine
Logger.WriteLine(fxName, result, Log.MessageTypeEnum.InfoType)
End While