2013-02-18 55 views
0

我基於特徵的事件,如編碼自動安裝程序:自動安裝點擊繼續等,而process.waitforexit()是活躍

  • 易編碼的自動安裝,(但以極大的努力在所有程序上工作)。

現在有一個問題,我卡住了,至於如何執行sendkeys等,而程序是在process.waitforexit()

try 
     { 
      foreach (string checkedItem in checkedListBox1.CheckedItems) 
      { 
       if (checkedItem.Contains(".")) 
       { 
        string str = checkedItem; 
        if (str.Contains(".")) 
        { 
         /* haal de rest achter de . eraf om een map ervan te maken. */ 
         int index = str.IndexOf('.'); 
         string folder = str.Substring(0, index); 
         string pad = Application.StartupPath; 
         try 
         { 
          /* Start de programma. */ 
          bool started = false; 
          var process = new Process(); 
          process.StartInfo.FileName = pad + "/data/" + folder + "/" + checkedItem; 
          started = process.Start(); 
          /* Haal de informatie op van de programma's die opgestart worden. */ 
          var processID = process.Id; 
          var processNAAM = process.ProcessName; 
          textBox1.Text += "Gevonden - ID: " + processID + "  NAAM: " + processNAAM + Environment.NewLine; 
          textBox1.Text += DateTime.Now.ToString("HH:mm:ss", System.Globalization.DateTimeFormatInfo.InvariantInfo) + " - " + "Installatie Keuze wordt opgestart." + Environment.NewLine; 
          /* Wacht totdat het programma klaar is! */ 
           process.WaitForExit(); 
          textBox1.Text += DateTime.Now.ToString("HH:mm:ss", System.Globalization.DateTimeFormatInfo.InvariantInfo) + " - " + "Installatie Geslaagd!" + Environment.NewLine + Environment.NewLine; 
         } 

如果有人能夠幫助我在這裏,它會被很多讚賞:d

+1

你(main-)線程在等待的過程中,當阻塞。也許你應該創建一個後臺線程來監視輸入。 – 2013-02-18 13:43:55

回答

0

使用Process.WaitForInputIdle()所以你知道其他進程準備輸入,然後使用的SendKeys然後根據需要調用可能如果你真的需要等待它退出,請使用Process.WaitForExit()

編輯

下面和更新與鍵替換你的行process.WaitForExit();你需要%C可能

process.WaitForInputIdle(); 
SendKeys.SendWait("Your Key Strokes"); 
process.WaitForExit(); 
+0

我到底該怎麼做? – user1547355 2013-02-18 13:46:50

+0

增加了一個我的意思是 – Dreamwalker 2013-02-18 13:53:59

+0

有沒有辦法使它像while(process.waitforexit()){做某事}其他{break;}? – user1547355 2013-02-18 13:55:07