Páginas: [1]
|
 |
|
Autor
|
Tema: Acerca de Matar Pocesos (Leído 283 veces)
|
Zorrohack
Desconectado
Mensajes: 845
Quisiera burlar la enfermedad asi como a los AVs
|
???
He estado mirando este articulo:
Cancelar un proceso (kill)
MKB-551101
Para poder cerrar un proceso hay que seguir los siguientes pasos:
1. Obtener el identificador del proceso.
2. Abrir el proceso a partir de su identificador. Para ello, hay que utilizar la función OpenProcess:
Private Declare Function OpenProcess Lib "kernel32" (ByVal _ dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal _ dwProcessId As Long) As Long
3. Comprobar el estado del proceso con la función GetExitCodeProcess para comprobar que está activo:
Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal _ hProcess As Long, lpExitCode As Long) As Long
4. Si el proceso está activo hay que cerrarlo con la función TerminateProcess:
Private Declare Function TerminateProcess Lib "kernel32" (ByVal _ hProcess As Long, ByVal uExitCode As Long) As Long
5. Por último, si el proceso se cerró correctamente hay que liberar su manejador asociado con CloseHandle:
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject _ As Long) As Long
A continuación, se muestra un ejemplo en Visual Basic que implementa el kill -9. Siga los siguientes pasos para probar el código:
1. Cree un nuevo proyecto con un formulario. 2. Añada un botón y una caja de texto con las siguientes propiedades:
Command1 Name: btnCerrar Caption: &Matar Proceso
Text1 Name: txtIdProceso Text: ""
3. Copie o pegue el siguiente código en el formulario:
Private Declare Function OpenProcess Lib "kernel32" (ByVal _ dwDesiredAccess As Long, ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long) As Long Private Declare Function GetExitCodeProcess Lib "kernel32" _ (ByVal hProcess As Long, lpExitCode As Long) As Long Private Declare Function TerminateProcess Lib "kernel32" _ (ByVal hProcess As Long, ByVal uExitCode As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject _ As Long) As Long
Const PROCESS_TERMINATE = &H1 Const PROCESS_QUERY_INFORMATION = &H400 Const STILL_ACTIVE = &H103
Private Sub btnCerrar_Click() Dim hProceso As Long Dim lEstado As Long
' Obtenemos el handle al proceso hProceso = OpenProcess(PROCESS_TERMINATE Or _ PROCESS_QUERY_INFORMATION, 0, CLng(txtIdProceso))
If hProceso <> 0 Then ' Comprobamos estado del proceso GetExitCodeProcess hProceso, lEstado If lEstado = STILL_ACTIVE Then ' Cerramos el proceso If TerminateProcess(hProceso, 9) <> 0 Then MsgBox "Proceso cerrado" Else MsgBox "No se pudo matar el proceso" End If End If ' Cerramos el handle asociado al proceso CloseHandle hProceso Else MsgBox "No se pudo tener acceso al proceso" End If End Sub
Pero no he conseguido nada, ademas quisiera saber como hago para por ejemplo Matar el Proceso de Avpm.exe que es del Anti Virus Kaspersky.
|
|
|
|
|
En línea
|
Progresamos porque hay Millones de imbeciles, maldicion jodi a McAfee,Panda,Kav,Norton, perdonen solo practicaba.
|
|
|
Mr.Potat0
Visitante
|
puedes mirar los procesos activos con Process32First y Process32Next, el segundo parametro de estas funciones es un puntero a una estructura (PROCESSENTRY32): typedef struct tagPROCESSENTRY32 { DWORD dwSize; DWORD cntUsage; DWORD th32ProcessID; DWORD th32DefaultHeapID; DWORD th32ModuleID; DWORD cntThreads; DWORD th32ParentProcessID; LONG pcPriClassBase; DWORD dwFlags; char szExeFile[MAX_PATH]; } PROCESSENTRY32;
char szExeFile[MAX_PATH] tiene el nombre del ejecutable, ya sabes lo que puedes hacer.
|
|
|
|
|
En línea
|
|
|
|
Zorrohack
Desconectado
Mensajes: 845
Quisiera burlar la enfermedad asi como a los AVs
|
???
No entendi Nada !!!
|
|
|
|
|
En línea
|
Progresamos porque hay Millones de imbeciles, maldicion jodi a McAfee,Panda,Kav,Norton, perdonen solo practicaba.
|
|
|
®®
Colaborador
Conectado
Mensajes: 5.254
|
pos asi por encima y copiado de la ayuda:
Process32First Retrieves information about the first process encountered in a system snapshot. (CreateToolhelp32Snapshot ¿ok?
pues bueno la estructura que te decia en el otro post tiene un campo que es szExeFile[MAX_PATH] ¿ok? aqui estara el nombre del ejecutable luego solo te queda comparar que szExeFile sea = a el programa que tu buscas.
|
|
|
|
|
En línea
|
|
|
|
4lpha
Desconectado
Mensajes: 60
¡Amo YaBB SE!
|
A mi tambien me interesaria saber como matar procesos en vb, ay algun manual q diga como? losq yo tengo no tocan l tema...
|
|
|
|
|
En línea
|
|
|
|
|
Páginas: [1]
|
|
|
|