Matar explorer

Iniciado por germixxx, 3 Diciembre 2005, 18:42 PM

0 Miembros y 1 Visitante están viendo este tema.

germixxx

Hola,
         Bueno como dice el asunto la duda es como m***** hago para matar el proceso del explorer, intente de todo con el processid con el nombre de la ventana("program manager") con el classtype("progman") pero nada no se q hago mal, no creo q sea muy dificil pero no puedo, mato el winamp, ventanas del explorer pero no puedo matar el explorer, encontre en este foro un post por Slasher-K  pero el codigo es tan largo q intente sacar las partes q necesitaba pero no me funcionaron.  No postie los codigos q intente x q intente un monton y supongo q muchos saben como hacer esto, pero si es necesario... . Mi intencion es hacerlo con codigo de vb sin hacer shell a ventanas de dos o programas externos, pero si no queda otra... el sistema operativo q uso es win 98 pero necesito q funcione tmb en xp, de todas formas si alguien sabe como hacer y q funcione solo en 98 q postee tmb (si quiere ovbio) (estoy desesperado,jaja) . Bueno muchas gracias de ante mano

germixxx

Bueno, me queme tanto la cabeza q me autorespondi, posteo el codigo q me funciono x si alquien lo necesita o para no dejar el post congando :)


Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long


Public Sub Matarexp()
Static lhwnd As Integer, i As Integer
Static Val As Long, lPID As Long
Const PROCESS_TERMINATE = &H1

Val = GetWindowThreadProcessId(FindWindow("progman", vbNullString), lPID)

lhwnd = OpenProcess(PROCESS_TERMINATE, 0, lPID)

i = TerminateProcess(lhwnd, 0)

End Sub