3

我正在使用 ffmpeg 编译视频,并且我想阻止它在执行操作时显示控制台。

这是我启动 ffmpeg 的方式:

ProcessStartInfo si = new ProcessStartInfo();
si.Arguments = string.Format("-y -loop 1 -t " + DucationToString(frameDuration) + " -r 25 -f image2 -i \"{0}\" \"{1}\"",
                             item.Value, otpt);
si.FileName = "ffmpeg";
si.UseShellExecute = false;

Process.Start(si).WaitForExit();

无论我尝试什么设置ProcessStartInfo,控制台总是会出现。

创建子进程时如何防止显示控制台?

4

3 回答 3

6

你应该尝试使用

ProcessStartInfo si = new ProcessStartInfo();
si.WindowStyle = ProcessWindowStyle.Hidden;
si.CreateNoWindow = true;
si.UseShellExecute = false;

MSDN 参考

于 2012-07-18T10:02:47.927 回答
2

设置ProcessStartInfo.CreateNoWindowtrue

请注意

要使用ProcessWindowStyle.Hidden或属性必须ProcessStartInfo.CreateNoWindowProcessStartInfo.UseShellExecutefalse

于 2012-07-18T10:07:32.320 回答
1

你有没有在你的代码中添加这个

    si.CreateNoWindow = true;
    si.RedirectStandardOutput = true;
于 2012-07-18T10:04:21.437 回答