此代码适用于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中的管道来运行这个应用程序。
答案 0 :(得分:0)
代码看起来很好。
如果进程没有向标准输出输出任何内容,则无法捕获任何内容。
您可以使用Windows上的现有输出重定向或管道输出到其他程序Windows * * nix来验证程序的行为而不是代码中的错误 -
tool.exe > output.txt
tool.exe | more