2014-05-05 151 views
-1

關閉過程中,我需要關閉的過程包含我想這個詞「的SoundCloud」 但不會工作確實顯示出與全名消息框,但不會關閉該應用程序錯誤system.indexoutofRangeException含有特定字符串

private void getprocess() 
    { 
     StringBuilder sb = new StringBuilder(); 
     richTextBox1.Clear(); 
     int i = 1; 
     foreach (Process p in Process.GetProcesses(".")) 
     { 
      try 
      { 
       if (p.MainWindowTitle.Length > 0) 
       { 

        if (p.MainWindowTitle.Contains("SoundCloud")) 
        { 
         timer1.Stop(); 
         timer1.Enabled = false; 
         MessageBox.Show("Close "+p.MainWindowTitle.ToString()); 
         Process[] proc =  Process.GetProcessesByName(p.MainWindowTitle.ToString()); 
         proc[0].Kill(); 

        } 
        richTextBox1.AppendText("\n"+i.ToString()+"). " + p.MainWindowTitle.ToString()); 
        i++; 

       } 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.ToString()); 
      } 
     } 
+0

什麼是「p」,它什麼都不起作用(錯誤信息?) –

+2

您在代碼中假設進程名稱與主窗口標題的標題不同,它不是真實的。 – ken2k

+0

'p.Kill()'有什麼問題?你已經有了簡單的過程 – Jonesopolis

回答

1

只需省略GetProcesssByName部分並致電p.Kill()。這將殺死主窗口標題中帶有「SoundCloud」的任何進程。

+0

Thnx。沒想到這一點 – Kalpesh