2012-07-18 80 views
3

我正在使用ffmpeg编译视频,并且我想阻止它在执行操作时显示控制台。防止子进程在c中显示shell窗口#

我是这样开始的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,控制台总是显示出来。

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

回答

5

你应该尝试使用

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

MSDN refs

+0

我认为还有一个名为CreateNoWindow的属性并将其设置为true – 2012-07-18 10:03:46

1

你有没有在你的代码

si.CreateNoWindow = true; 
    si.RedirectStandardOutput = true; 
2

设置ProcessStartInfo.CreateNoWindowtrue加入此。

注意说:

要使用ProcessWindowStyle.HiddenProcessStartInfo.CreateNoWindowProcessStartInfo.UseShellExecute属性必须是false