无法从控制台进程

时间:2015-09-21 17:05:01

标签: c#

此代码适用于ipconfig.exe,但我对目标应用程序一无所知。

Process p = new Process();
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.StartInfo.FileName = "miner.exe";
p.StartInfo.Arguments = command;
p.EnableRaisingEvents = true;

p.OutputDataReceived += OutputDataReceived;
p.ErrorDataReceived += ErrorDataReceived;

p.Start();
p.BeginOutputReadLine();
p.StandardInput.Close();

有人可以说出可能出错的地方,我该怎么办?目标应用程序是用c ++编写的,我认为使用printf进行输出。在论坛上,我看到有人说他不能使用linux中的管道来运行这个应用程序。

1 个答案:

答案 0 :(得分:0)

代码看起来很好。

如果进程没有向标准输出输出任何内容,则无法捕获任何内容。

您可以使用Windows上的现有输出重定向或管道输出到其他程序Windows * * nix来验证程序的行为而不是代码中的错误 -

tool.exe > output.txt  
tool.exe | more