Palabras clave: WMI, cerrar, terminar, matar, proceso
Autor: Búho
Extraído de: La web del Búho
Objetivo
Cerrar un proceso sin utilizar API: utilizando WMI
' Requiere la referencia Microsoft WMI Scripting vx.x Library
Function CierraProceso _
( _
StrNombreProceso _
As String, _
Optional _
DecirSINO _
As Boolean = True _
) _
As Boolean
Dim ListaProcesos As Object
Dim ObjetoWMI As Object
Dim ProcesoConcreto As Object
CierraProceso = False
Set ObjetoWMI = GetObject("winmgmts:")
If IsNull(ObjetoWMI) = False Then
Set ListaProcesos = ObjetoWMI.InstancesOf("win32_process")
For Each ProcesoConcreto In ListaProcesos
If UCase(ProcesoConcreto.Name) = UCase(StrNombreProceso) Then
If DecirSINO Then
If MsgBox("¿Matar el proceso " & _
ProcesoConcreto.Name & vbNewLine & _
"...¿Está seguro?", _
vbYesNo + vbCritical) _
= vbYes Then
ProcesoConcreto.Terminate (0)
CierraProceso = True
End If
Else
ProcesoConcreto.Terminate (0)
CierraProceso = True
End If
End If
Next
Else
'pon aqui un msgbox con el error que se produzca
End If
Set ListaProcesos = Nothing
Set ObjetoWMI = Nothing
End Function