Matar Proceso con Una linea (SRC)

Iniciado por Dessa, 4 Enero 2009, 02:58 AM

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

Dessa

No hay mucho que agregar, solo hace falta el nombre del ejecutable del proceso y para el que no sepa reestablecer el explorer luego de ejecutar el code del ejemplo (desaparecen los iconos, barra de inicio, menús de contexto, Etc, Etc) lo haga desde CTL-ALT-SUP (Aministrador, aplicaciones, tarea neva..., explorer, aceptar)

Private Sub Form_Load()
Shell "cmd.exe /c Taskkill /f /IM " + "EXPLORER.EXE"
End Sub

PD: para enumerar los procesos que esten corriendo "WMI" o "API EnumProcesses"

Saludos

Adrian Desanti

invisible_hack

Gracias por el code, aunque esto en realidad es usar Batch desde Visual Basic, ya que taskkill es Batch puro....solo que usada desde VB mediante el comando Shell....

De todos modos, buen aporte  ;)
"Si no visitas mi blog, Chuck te dará una patada giratoria"

krackwar

mmm.. usa api's para matr procesos no otro exe  :xD

ZwTerminateProcess

Esa api si no me equvoco era la api
Mi blog
Bienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran.
El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.

seba123neo

con la api TerminateProcess ya basta...
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Karcrack

Cita de: krackwar en  4 Enero 2009, 21:17 PM
mmm.. usa api's para matr procesos no otro exe  :xD

ZwTerminateProcess

Esa api si no me equvoco era la api
Cita de: seba123neo en  4 Enero 2009, 21:35 PM
con la api TerminateProcess ya basta...

Lo malo es que para matar un proceso desde su nombre ejecutable necesitas obtener el PID.. y ya se nos va la linea...

Saludos :D

Dessa

#5
Me pareció practico y directo, conociendo el nombre del exe

PD: Tambien funciona con PID: Shell "cmd.exe /c Taskkill /PID ####"

Saludos
Adrian Desanti

Karcrack

#6
Cita de: Dessa en  5 Enero 2009, 01:21 AM
Me pareció practico y directo, conociendo el nombre del exe

PD: Tambien funciona con PID: Shell "cmd.exe /c Taskkill /PID ####"

Saludos
Si, pero teniendo el PID es mas util usando OpenProcess y TerminateProcess



MOD:
Código (vb) [Seleccionar]
Option Explicit

Private Const PROCESS_TERMINATE As Long = (&H1)

'KERNEL32
Private Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32.dll" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

Public Function CloseProcess(ByVal lPid As Long) As Boolean
    CloseProcess = CBool(TerminateProcess(OpenProcess(PROCESS_TERMINATE, 0&, lPid), 0&))
    Call CloseHandle(lProc)
End Function

PD: Se podria quitar el CloseHandle.. pero queda mas PRO no? :xD

Saludos ;D

Dessa

No desenfoques el punto del mensaje "Karcrack", sabiendo el nombre del Proceso a cerrar con esa linea alcanza y para mi por lo menos, me parece práctica, como nombraste al PID, yo Agregué que con el PID tambien funciona, pero como vos decis tenes que agregar 1 módulo, 3 lineas de declaracion de APIs, 1 Funcion y la llamada a la funcion desde el formulario (minimo 8 lineas) sin la "linea PRO" ni la constante que la ponemos directa sin declarar), todo esto contra una linea.

Shell "cmd.exe /c Taskkill /PID ####"

PD: No seas tan negativo, hermano, despues de todo nadie te obliga a usar el Code y quedarse en pequeñeces no suma, mas bien que resta.

Saludos.
Adrian Desanti

Karcrack

Lamento haberte molestado Dessa, simplemente esta poniendo la alternativa... yo tampoco obligo a que lo usen...


Bueno, saliendo de la trifulca quiero decir que he analizado el TaskKill.exe y para obtener el PID del ejecutable indicado no recorre todos los procesos :rolleyes:, los lee desde la memoria :-\ (Aunque mis conocimientos con el Olly no son tantos como para afirmarlo :P)

Asi que a ver si tengo tiempo esta semana y hago una funcion para no depender del TaskKill, solo con ASM y un par de APIs ;D

Saludos ;D