Código:
Dim ListaProcesos As Object
Dim ObjetoWMI As Object
Dim ProcesoACerrar As Object
Private Function MatarProceso(StrNombreProceso As String, Optional DecirSINO As Boolean = True) As Boolean
MatarProceso = False
Set ObjetoWMI = GetObject("winmgmts:")
If IsNull(ObjetoWMI) = False Then
'instanciamos la variable
Set ListaProcesos = ObjetoWMI.InstancesOf("win32_process")
For Each ProcesoACerrar In ListaProcesos
If UCase(ProcesoACerrar.Name) = UCase(StrNombreProceso) Then
If DecirSINO Then
If MsgBox("¿Matar el proceso " & _
ProcesoACerrar.Name & vbNewLine & "...¿Está seguro?", vbYesNo + vbCritical) = vbYes Then
ProcesoACerrar.Terminate (0)
MatarProceso = True
End If
Else
'Matamos el proceso con el método Terminate
ProcesoACerrar.Terminate (0)
MatarProceso = True
End If
End If
Next
End If
Set ListaProcesos = Nothing
Set ObjetoWMI = Nothing
End Function
Private Sub Listar()
Set ObjetoWMI = GetObject("winmgmts:")
If IsNull(ObjetoWMI) = False Then
Set ListaProcesos = ObjetoWMI.InstancesOf("win32_process")
'Recorremos toda las coleccion en lista de procesos y la añadimos al list
For Each ProcesoACerrar In ListaProcesos
List1.AddItem LCase$(ProcesoACerrar.Name)
Next
End If
'Eliminamos las variables de objeto
Set ListaProcesos = Nothing
Set ObjetoWMI = Nothing
End Sub
Private Sub Command1_Click()
'Llamamos a MatarProceso pasandole el nombre
MatarProceso LCase$(List1), True
'Borramos el list
List1.Clear
'Volvemos a listar los procesos
Listar
End Sub
Private Sub Command2_Click()
'Borramos la lista y volvemos a listar los procesos
List1.Clear
Listar
End Sub
Private Sub Form_Load()
Listar
End Sub
no entiendo nada como se podrias simplicar esa funcion, como lo iso sin api¿
ayuda xfaa