【发布时间】:2012-02-24 12:12:52
【问题描述】:
我有这个:
var startInfo = new ProcessStartInfo
{
FileName = _pathToExe,
RedirectStandardOutput = true,
RedirectStandardError = true,
RedirectStandardInput = true,
UseShellExecute = false,
WorkingDirectory = FilepathHelper.GetFolderFromFullPath(_pathToExe),
CreateNoWindow = true,
WindowStyle = ProcessWindowStyle.Hidden
};
try
{
using (_proc = Process.Start(startInfo))
{
_proc.EnableRaisingEvents = true;
_proc.ErrorDataReceived += proc_DataReceived;
_proc.OutputDataReceived += proc_DataReceived;
_proc.BeginErrorReadLine();
_proc.BeginOutputReadLine();
var myStreamWriter = _proc.StandardInput;
var allArgs = "";
foreach (var arg in _args)
allArgs += arg + Environment.NewLine;
myStreamWriter.Write(allArgs);
_proc.WaitForExit();
}
}
catch (Exception e)
{
Console.WriteLine(e);
}
我正在执行一个别人写的 *.exe。对于这个特定的 *.exe - 即使您可以清楚地看到上面我设置了 ProcessWindowStyle.Hidden,我仍然看到一个黑色窗口出现,上面写着“按任意键退出。”。这个 *.exe - 如果我从命令行运行(而不是从我的 C# 代码中调用它)会产生大量的控制台输出文本。当我运行我的 C# 代码时,我没有看到这个输出文本,这是我想要的,也意味着重定向正在工作。
我检查并完成了该过程 - 就好像命令窗口本身正在添加这个额外的(不受欢迎的)步骤。
以前有没有人遇到过这种情况,如果有,我该如何解决?
【问题讨论】:
-
这不是你要找的吗? stackoverflow.com/questions/186822/…
-
不,该链接是关于重定向的。我没有重定向的问题。还有其他链接吗??有人有办法解决这个问题。
标签: c# .net command-line console-application