我目前正在尝试从外部控制台应用程序读取输出流。我无法修改此应用程序。
这是我目前使用的代码:
Process process = new Process();
string dir = Directory.GetCurrentDirectory();
process.StartInfo.FileName = dir + "/volibot.exe";
process.StartInfo.UseShellExecute = false;
process.Start();
//do some stuff with the stream
我使用这个来读取outputstream:
while (!process.StandardOutput.EndOfStream)
{
string message = process.StandardOutput.ReadLine();
Console.WriteLine(message);
}
但是每当我添加以下内容时:
process.StartInfo.RedirectStandardOutput = true;
I get this error:
Unhandled exception: System.IO.IOException: The handle is invalid.
bij System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bij System.IO.__Error.WinIOError()
bij System.Console.SetWindowSize(Int32 width, Int32 height)
bij RitoBot.Core.Main(String[] args)
这不合理,因为这是一个控制台应用程序?我该如何解决这个问题?还是有简单的解决方法吗?
编辑: 尝试了这个:ProcessInfo and RedirectStandardOutput
static void Main(string[] args)
{
//C:\\Users\\pc\\Documents\\Visual Studio 2013\\Projects\\ConsoleApplication1\\ConsoleApplication1\\bin\\Debug\\VoliBot.exe
Process build = new Process();
build.StartInfo.WorkingDirectory = @"C:\\Users\\pc\\Documents\\Visual Studio 2013\\Projects\\ConsoleApplication1\\ConsoleApplication1\\bin\\Debug\\";
build.StartInfo.Arguments = "";
build.StartInfo.FileName = "volibot.exe";
build.StartInfo.UseShellExecute = false;
build.StartInfo.RedirectStandardOutput = true;
build.StartInfo.RedirectStandardError = true;
build.StartInfo.CreateNoWindow = true;
build.ErrorDataReceived += build_ErrorDataReceived;
build.OutputDataReceived += build_ErrorDataReceived;
build.EnableRaisingEvents = true;
build.Start();
build.BeginOutputReadLine();
build.BeginErrorReadLine();
build.WaitForExit();
Console.ReadLine();
}
static void build_ErrorDataReceived(object sender, DataReceivedEventArgs e)
{
string strMessage = e.Data;
Console.WriteLine(strMessage);
}
仍然无法工作 :s
StandardOutput
的代码吗? - Khanh TOvolibot.exe
时是否出现错误?或者volibot.exe
的路径不正确。 - Khanh TOvolibot.exe
е†…йѓЁзљ„д»Јз ЃдЅїз”Ёдє†дёЂдє›зЋЇеўѓдїЎжЃЇпјЊдѕ‹е¦‚workingdirectoryпјЊдЅ†иї™дє›дїЎжЃЇењЁдЅ зљ„д»Јз ЃдёжІЎжњ‰жЏђдѕ›пјЊеЇји‡ґvolibot运行时出现错误。当从命令行运行时,这些信息由shellжЏђдѕ›гЂ‚ - Khanh TO