Public Sub KillProcess(sProcessName As String)
On Error GoTo Error_Handler
Dim ProcessList As Object
Set ProcessList = GetObject( _
"winmgmts:{impersonationLevel=impersonate}" _
).ExecQuery("Select * From Win32_Process", , 48)
'Set ProcessList = GetObject("winmgmts://.").InstancesOf("win32_process")
For Each oProcess In ProcessList 'Loop through each active process
If LCase(sProcessName) = LCase(oProcess.Name) Then
oProcess.Terminate ' Kill this instances of the process
End If
Next
Error_Handler_Exit:
On Error Resume Next
Set ProcessList = Nothing
Exit Sub
Error_Handler:
MsgBox "The following error has occured." & vbCrLf & vbCrLf & _
"Error Source: KillProcess" & vbCrLf & _
"Error Number: " & Err.Number & vbCrLf & _
"Error Description: " & Err.Description, _
vbCritical, "An Error has Occured!"
Resume Error_Handler_Exit
End Sub
先将上面过程的代码放在模块中或者窗体中,使用示例如下
KillProcess "winword.exe" '删除word进程
KillProcess "excel.exe" '删除excel进程