【问题标题】:Close process containing specific string关闭包含特定字符串的进程
【发布时间】:2014-06-22 00:29:35
【问题描述】:

我需要关闭包含“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());
            }
        }

【问题讨论】:

  • p 是什么,它不起作用怎么办(错误消息?)
  • 您在代码中假设进程名称与其主窗口标题的标题相同,这是不正确的。
  • p.Kill() 有什么问题?你已经有了流程

标签: c# winforms process kill system.diagnostics


【解决方案1】:

只需省略GetProcesssByName 部分并调用p.Kill()。这将杀死主窗口标题中带有“SoundCloud”的所有进程。

【讨论】:

  • 这很简单。没想到
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 2018-05-06
  • 2016-12-06
  • 2015-04-17
  • 1970-01-01
  • 2018-07-04
相关资源
最近更新 更多