0

我目前在 VS 2010 中进行了跟进

        Dim myProcess() As Process = System.Diagnostics.Process.GetProcessesByName("calc")

    For Each myKill As Process In myProcess
        myKill.Kill()

但是,我似乎无法让它杀死多个进程。我试过的例子

("calc",mspaint")
("calc,mspaint")
("calc"),("mspaint")

有任何想法吗?感谢您的时间/支持

4

1 回答 1

2

引用GetProcessByName的 MSDN 文档:

创建一个新流程组件的数组,并将它们与现有的流程资源相关联,这些现有流程资源都共享指定的流程名称。

您不能将参数数组传递给它。相反,您可以使用GetProcesses方法获取所有进程,遍历所有进程并检查其名称是否与您想要的名称之一匹配:

 Dim procs = System.Diagnostics.Process.GetProcesses().Where((Function(p) p.ProcessName = "calc" Or p.ProcessName = "mspaint"))
            For Each p As Process In procs
                p.Kill()
            Next

非LINQ方式:

 For Each p As Process In Process.GetProcesses()
            If p.ProcessName = "calc" Or p.ProcessName = "mspaint" Then
                p.Kill()
            End If
        Next
于 2012-04-11T02:21:57.357 回答