防止子进程在c#中显示shell窗口

Ars*_*ray 3 c# windows process processstartinfo

我正在使用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();
Run Code Online (Sandbox Code Playgroud)

无论我尝试的设置如何ProcessStartInfo,控制台总会出现.

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

Ste*_*eve 5

你应该尝试使用

ProcessStartInfo si = new ProcessStartInfo();
si.WindowStyle = ProcessWindowStyle.Hidden;
si.CreateNoWindow = true;
si.UseShellExecute = false;
Run Code Online (Sandbox Code Playgroud)

MSDN参考