2015-10-05 61 views
0
System.Diagnostics.Process.Start("rasdial.exe", "sdsss" "aa" "bb"); 

過程開始新的控制檯,並嘗試運行RAS,但是當連接 失敗,它關閉 - 如何保持屏幕上的控制檯?不要關閉控制檯(C#)

+3

我想你可以運行'CMD/K rasdial.exe'代替。 – Default

+2

您是否嘗試過在Console.Readline()中添加連接失敗處理程序? – Harvey

+0

如果您無法修改可執行文件,那麼您可以通過cmd運行它,或者直接開始探索ProcessStartInfo選項,然後使用該文件啓動可執行文件。 ProcessStartInfo類有幾個可以幫助的字段。 – Hozikimaru

回答

0

一個簡單的方法來實現,就是簡單地重定向標準錯誤。 這是一個簡單的例子。

namespace AnswerOne 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      //we use a prosessstartinfo 
      System.Diagnostics.ProcessStartInfo procInfo = new System.Diagnostics.ProcessStartInfo("rasdial.exe"); 
      procInfo.RedirectStandardError = true; 
      //must be false 
      procInfo.UseShellExecute = false; 
      var process = new System.Diagnostics.Process(); 
      process.StartInfo = procInfo; 
      process.Start(); 
      process.WaitForExit(); 

      string error = process.StandardError.ReadToEnd(); 
      //check if there is any error 
      if (string.IsNullOrEmpty(error)) 
      { 
       System.Console.WriteLine(error); 
      } 
      System.Console.WriteLine("Press any key to close"); 
      System.Console.ReadLine(); 
     } 
    } 
} 

更多信息:msdn for standard error redirection