Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.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# 使用另一个EXE文件获取EXE文件输出_C# - Fatal编程技术网

C# 使用另一个EXE文件获取EXE文件输出

C# 使用另一个EXE文件获取EXE文件输出,c#,C#,我有一个EXE文件,可以连接到服务器并获取服务器输出消息(int),这个EXE文件工作正常并返回服务器消息 我现在要做的是从另一个EXE文件执行EXE文件,因此我创建了now console应用程序项目,并从此项目运行此EXE: Process p = new Process(); p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.

我有一个
EXE
文件,可以连接到服务器并获取服务器输出消息(int),这个
EXE
文件工作正常并返回服务器消息

我现在要做的是从另一个
EXE
文件执行
EXE
文件,因此我创建了now console应用程序项目,并从此项目运行此
EXE

    Process p = new Process();
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.RedirectStandardOutput = true;
    p.StartInfo.FileName = "file.exe";
    p.StartInfo.Arguments = "arg";
    p.Start();
    string output = p.StandardOutput.ReadToEnd();
    p.WaitForExit();
但由于某种原因,输出总是空的

编辑:


我更改了我的
EXE
,而不是返回我的
int
,现在我将其打印到控制台应用程序,现在从另一个
EXE
我可以捕获输出,但在运行此
EXE
时,我如何才能从命令行而不是visual studio捕获此输出?

程序是否改为写入标准错误?可能重复,但没有任何可接受的答案,因此,我不能投票以dup的形式结束。不,我没有写标准的错误去读这篇关于捕获输出的所有陷阱的文章:这里有一个猜测:在windows中重定向进程输出是一件非常复杂的事情-需要几百行复杂的代码(我几年前就已经做过了)即使这样,它也不总是有效的。我非常怀疑c#中的标准实现是否涵盖了所有情况,这可能是你的问题。可以尝试寻找特殊参数和力模式或其他