2015-07-19 22 views
-2

我已經創建了一個基本上加載視頻文件的GUI應用程序,按順序啓動了3個進程參數(ffmpeg,x264,mp4box),並且可以根據需要中止。c#啓動過程沒有焦點

我試圖找出一種方法來啓動這些進程,而無需他們從任何打開的程序竊取焦點。不一定是原始形式本身......它可能是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); 
         } 

我知道如何使用與AppWinStyle的Microsoft.VisualBasic程序參考和Shell命令,因爲它有沒有重點推出的選項,我只是」 t似乎弄清楚如何修改我的代碼以使其適用於此。

任何想法?

感謝

+0

你爲什麼要創建外部進程和監視更多信息?有些視頻庫無法處理什麼問題? – EZI

+0

我試圖自動化一個MXF視頻文件並創建一個mp4的過程。我更喜歡在這個過程中使用ffmpeg/x264,因爲我知道它會產生兼容的視頻/音頻。我想有能力看到每個過程有多遠 – Derek

+0

任何想法? 不知道爲什麼我有-2,我徹底搜索了這個論壇和其他人都試圖找到答案,但沒有人能夠。 我知道有Microsoft.VisualBasic參考中的代碼,我只是需要一些幫助實現它,如果它甚至可能。 謝謝! – Derek

回答

0
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 

是,將你要找的?下面

How to start Process hidden?
http://www.dotnetperls.com/process-start
ProcessWindowStyle Enumeration

+0

這會啓動隱藏的應用程序,我無法監控它們。我想有能力監視它們,但是我不希望它們在啓動過程啓動時關注焦點。 – Derek

+0

如果您沒有看到窗口或被通知進程已啓動,您將如何監控它們? –

+0

那麼,這個過程仍然會顯示在任務欄中,並在我當前運行的任何程序後面打開 – Derek