我创建了一个基本上加载视频文件的GUI应用程序,按顺序启动3个带有参数的进程(ffmpeg,x264,mp4box),并且能够在需要时中止。
我试图找到一种方法来启动这些流程,而不会从任何打开的程序中窃取焦点。不一定是原始形式本身...它可能是IE,MS WORD等...我知道ProcessWindowStyle,但是,所有选项仍然需要关注。我也不想隐藏这些进程。
这是我启动流程的代码示例
Process ffmpegProcess = new Process();
ffmpegProcess.StartInfo.FileName = Settings.Default.ffmpeg;
ffmpegProcess.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;
string outputaud = text2 + "_audio.aac";
string AudioBitrate = this.cBAudiobitrate.GetItemText(this.cBAudiobitrate.SelectedItem);
string ffargs = "-i " + quote + SourceFile + quote + " -filter_complex " + quote + "[0:2][0:3]amerge=inputs=2,pan=stereo|c0=c0+c1|c1=c0+c1[aout]" + quote + " -map " + quote + "[aout]" + quote + " -strict experimental -acodec aac -b:a " + AudioBitrate + "k " + quote + outputaud + quote;
ffmpegProcess.StartInfo.Arguments = ffargs;
ffmpegProcess.Start();
while (!ffmpegProcess.HasExited)
{
if (this.bw404p_withaudio.CancellationPending)
{
ffmpegProcess.Kill();
e.Cancel = true;
return;
}
Thread.Sleep(1000);
}
我知道将Microsoft.VisualBasic Reference和Shell命令与AppWinStyle一起使用,因为它具有无焦点启动的选项,我似乎无法弄清楚如何修改我的代码以使其适用。
有什么想法吗?
由于
答案 0 :(得分:0)