Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我将控制台应用程序重新改造为WinForm应用程序。我能';现在无法从其他控制台应用程序获取输出_C#_Winforms_Console - Fatal编程技术网

C# 我将控制台应用程序重新改造为WinForm应用程序。我能';现在无法从其他控制台应用程序获取输出

C# 我将控制台应用程序重新改造为WinForm应用程序。我能';现在无法从其他控制台应用程序获取输出,c#,winforms,console,C#,Winforms,Console,我有一个C#控制台应用程序,它运行另一个Borland C控制台应用程序。效果不错。 但在我将第一个应用程序重新制作成WinForm应用程序之后,我无法从Borland C控制台应用程序中获得输出 代码如下: Process p = new Process(); p.StartInfo.CreateNoWindow = true; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardError

我有一个C#控制台应用程序,它运行另一个Borland C控制台应用程序。效果不错。 但在我将第一个应用程序重新制作成WinForm应用程序之后,我无法从Borland C控制台应用程序中获得输出

代码如下:

Process p = new Process();    
p.StartInfo.CreateNoWindow = true;    
p.StartInfo.UseShellExecute = false;    
p.StartInfo.RedirectStandardError = true;    
p.StartInfo.RedirectStandardOutput = true;    
p.StartInfo.FileName = name1;    
p.Start();    
StreamReader sr = p.StandardOutput;    
progOutput = sr.ReadToEnd();    
//progOutput = p.StandardOutput.ReadToEnd();    
p.WaitForExit();    
字符串
progOutput
为空。如果我使用line,我会得到相同的结果
progOutput=p.StandardOutput.ReadToEnd()而不是
StreamReader

Borland C console应用程序确实正常启动并创建了输出文件。
但它的输出在WinForm应用程序中消失了。 正如我所说,这段代码在C#控制台应用程序中运行正常, 但现在在C#Windows窗体应用程序中不起作用

顺便说一句,如果我在WinForm应用程序中运行C#console应用程序,输出是正常的。 Borland C输出有什么问题吗? 但当我在C#控制台应用程序中运行Borland C应用程序时,它起了作用。 所以我很困惑

谢谢检查

var errorOut = p.StandardError.ReadToEnd();
您可能会将输出作为StandardError。您可以找到许多与此相关的问题,我们希望从StandardOutput获得输出,但它会重定向到StandardError。

检查

var errorOut = p.StandardError.ReadToEnd();

您可能会将输出作为StandardError。您可以找到许多与此相关的问题,我们希望从StandardOutput获得输出,但它会重定向到StandardError。

在某些情况下,我发现像这样间接启动可执行文件是有益的

p.StartInfo.FileName = "cmd";
p.StartInfo.Arguments = "/C " + name1;

..尤其是在存在输出重定向问题时。但你说它是一个控制台应用

在某些情况下,我发现像这样间接启动可执行文件是有益的

p.StartInfo.FileName = "cmd";
p.StartInfo.Arguments = "/C " + name1;

..尤其是在存在输出重定向问题时。但你说它是一个控制台应用

StandardError有什么?StandardError有什么?我也有同样的问题!这个给我修好了!替换
p.StartInfo.FileName=name1并告诉我们结果..但是如何将参数发送到控制台程序?“/C”是什么意思。谢谢顺便说一句,我现在用一个技巧解决了这个问题。我在myBorlandProg.exe%1%2>myBorlandProg.log
中创建了*.bat文件,然后分析了该日志文件。我遇到了同样的问题!这个给我修好了!替换
p.StartInfo.FileName=name1并告诉我们结果..但是如何将参数发送到控制台程序?“/C”是什么意思。谢谢顺便说一句,我现在用一个技巧解决了这个问题。我在myBorlandProg.exe%1%2>myBorlandProg.log中创建了*.bat文件,然后分析了该日志文件