【发布时间】: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