.net 终止本地进程
我正在使用以下命令终止本地进程:.net 终止本地进程,.net,vb.net,process,kill-process,.net,Vb.net,Process,Kill Process,我正在使用以下命令终止本地进程: Sub KillProcess(ByVal ProcessName As String) Dim pProcess() As Process = System.Diagnostics.Process.GetProcessesByName(ProcessName) pProcess(0).Kill() End Sub 我称之为“以上”和“以下”: Private Sub Button10_Click(sender As O
Sub KillProcess(ByVal ProcessName As String)
Dim pProcess() As Process = System.Diagnostics.Process.GetProcessesByName(ProcessName)
pProcess(0).Kill()
End Sub
我称之为“以上”和“以下”:
Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click
KillProcess("acsAPP")
KillProcess("acsSRV")
KillProcess("ACSTrans")
KillProcess("acsCNTRL")
KillProcess("acsRep")
End Sub
显然,上面的操作只会杀死父进程,而不是整个树进程——以相同名称运行的多个进程。我如何杀死列出的所有同名进程?必须有一个力开关或类似的东西
谢谢 正如您在KillProcess中看到的,您只杀死了1个进程,而GetProcessByName返回了一个进程列表。试着用下面的方法替换你的方法,通过循环所有的进程并杀死它们
Private Sub KillProcess(ByVal ProcessName As String)
Dim pProcess() As Process = System.Diagnostics.Process.GetProcessesByName(ProcessName)
For Each p As Process In pProcess
p.Kill()
Next
End Sub
正如您在KillProcess中看到的,您只杀死了1个进程,而GetProcessByName返回了一个进程列表。试着用下面的方法替换你的方法,通过循环所有的进程并杀死它们
Private Sub KillProcess(ByVal ProcessName As String)
Dim pProcess() As Process = System.Diagnostics.Process.GetProcessesByName(ProcessName)
For Each p As Process In pProcess
p.Kill()
Next
End Sub
如果您查看上面的文档,您将看到它返回一个与名称匹配的流程数组,顺便说一下,没有流程树这样的东西,因为没有流程的层次结构 您只杀死数组中的第一个:pProcess0。注意0是数组中的第一个元素,因为它是基于零的 要解决此问题,您需要终止所有匹配的进程:
Sub KillProcess(ByVal ProcessName As String)
For Each proc As Process In System.Diagnostics.Process.GetProcessesByName(ProcessName)
proc.Kill()
Next
End Sub
如果您查看上面的文档,您将看到它返回一个与名称匹配的流程数组,顺便说一下,没有流程树这样的东西,因为没有流程的层次结构 您只杀死数组中的第一个:pProcess0。注意0是数组中的第一个元素,因为它是基于零的 要解决此问题,您需要终止所有匹配的进程:
Sub KillProcess(ByVal ProcessName As String)
For Each proc As Process In System.Diagnostics.Process.GetProcessesByName(ProcessName)
proc.Kill()
Next
End Sub
GetProcessesByName返回多个,但您只删除第一个。遍历所有结果并杀死每个结果似乎最简单。GetProcessesByName返回多个结果,但您只删除了第一个。循环所有结果,并杀死每一个似乎是最容易的。