2015-04-02 49 views
0

我想從我的c#wpf應用程序啓動tomcat使用startup.bat和部署戰爭文件後,我想關閉它。這是我一直在做的事情,它似乎運作良好。C#System.Diagnostics.Process如何處理多個批處理文件

System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
      proc.StartInfo.FileName = Tomcat_DIR_tbox.Text + @"\bin\startup.bat"; 
      proc.StartInfo.WorkingDirectory = Tomcat_DIR_tbox.Text + @"\bin\"; 
      proc.StartInfo.RedirectStandardError = true; 
      proc.StartInfo.RedirectStandardOutput = true; 
      proc.StartInfo.UseShellExecute = false; 
      proc.StartInfo.CreateNoWindow = true; 
      proc.Start(); 
      // do some bla bla 
      //Close Tomcat 
      proc.StartInfo.Filename = Tomcat_DIR_tbox.Text + @"\bin\shutdown.bat"; 
      proc.Start(); 
      proc.WaitForExit(); 

現在我一直在想,雖然它的工作原理,它不是很正確嗎? Tomcat應用程序從未停止過,除非我告訴它,使用相同的進程關閉它也感覺不對?

我現在已經下來是這樣的:貯存過程中用於啓動Tomcat和創造了一個又一個要求必須關機:

//Close tomcat    
      System.Diagnostics.Process proc_shutdown = new System.Diagnostics.Process();    
      proc_shutdown.StartInfo.WorkingDirectory = Tomcat_DIR_tbox.Text + @"\bin\"; 
      proc_shutdown.StartInfo.FileName = Tomcat_DIR_tbox.Text + @"\bin\shutdown.bat"; 
      proc_shutdown.StartInfo.CreateNoWindow = true; 
      proc_shutdown.Start(); 
      proc_shutdown.WaitForExit(); 

我不喜歡這個唯一方法是它帶來了一條消息,詢問我是否允許從我的應用程序調用shutdown.bat,我可以取消選中「不要再問我這個文件」,但我仍然不喜歡用戶體驗它提供。

我也嘗試直接調用proc.Close()而不是做proc.Filename = path_to_shutdown和proc.Start(),但它似乎掛斷了我的應用程序,並且從不關閉tomcat。

那麼啓動tomcat,做一些事情然後關閉它的最好方法是什麼?謝謝,Razvan。

回答

0

根據我的觀察,你正在做的是很好的啓動和停止從WPF應用程序的Tomcat服務器。但是,如果你想隱藏安全警告,那麼打開IE瀏覽器進入工具 - > Internet選項,然後從那裏選擇「安全」選項卡選擇(自定義級別..)..在該組中,將有選項稱爲

「啓動應用程序和不安全的文件」 - >選擇啓用單選按鈕。然後它不會顯示「允許shutdown.bat」彈出窗口。

希望它有幫助。

相關問題