Foros del Web » Programación para mayores de 30 ;) » Programación General »

Matar procesos con VB. ¿Como?

Estas en el tema de Matar procesos con VB. ¿Como? en el foro de Programación General en Foros del Web. Alguien sabe como matar un proceso con Visual Basic? Tengo un par de procesos que no se de donde se activan y me consumen muchos ...
  #1 (permalink)  
Antiguo 17/07/2003, 19:49
Avatar de Jason  
Fecha de Ingreso: marzo-2003
Mensajes: 57
Antigüedad: 21 años, 1 mes
Puntos: 1
Pregunta Matar procesos con VB. ¿Como?

Alguien sabe como matar un proceso con Visual Basic?

Tengo un par de procesos que no se de donde se activan y me consumen muchos recursos. Me gustaria poder matarlo al inicio hasta averiguar de donde salen.
  #2 (permalink)  
Antiguo 18/07/2003, 00:49
 
Fecha de Ingreso: julio-2003
Ubicación: Buenos Aires/Capital Federal
Mensajes: 181
Antigüedad: 20 años, 9 meses
Puntos: 0
No se a que procesos te refires, se más especifico
__________________
No se puede inventar un sistema a prueba de tontos, porque los tontos son muy ingeniosos.
  #3 (permalink)  
Antiguo 18/07/2003, 03:29
Avatar de nazkatuta  
Fecha de Ingreso: julio-2002
Ubicación: EH - BCN
Mensajes: 222
Antigüedad: 21 años, 8 meses
Puntos: 0
'Codigo para el módulo

Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szexeFile As String * 260
End Type

Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, _
ByVal blnheritHandle As Long, ByVal dwAppProcessId As Long) As Long

Declare Function ProcessFirst Lib "kernel32.dll" Alias "Process32First" (ByVal hSnapshot As Long, _
uProcess As PROCESSENTRY32) As Long

Declare Function ProcessNext Lib "kernel32.dll" Alias "Process32Next" (ByVal hSnapshot As Long, _
uProcess As PROCESSENTRY32) As Long

Declare Function CreateToolhelpSnapshot Lib "kernel32.dll" Alias "CreateToolhelp32Snapshot" ( _
ByVal lFlags As Long, lProcessID As Long) As Long

Declare Function TerminateProcess Lib "kernel32.dll" (ByVal ApphProcess As Long, _
ByVal uExitCode As Long) As Long

Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long




Public Sub KillProcess(NameProcess As String)
Const PROCESS_ALL_ACCESS = 1
Const TH32CS_SNAPPROCESS As Long = 2&
Dim uProcess As PROCESSENTRY32
Dim RProcessFound As Long
Dim hSnapshot As Long
Dim SzExename As String
Dim ExitCode As Long
Dim MyProcess As Long
Dim AppKill As Boolean
Dim AppCount As Integer
Dim i As Integer
Dim WinDirEnv As String

If NameProcess <> "" Then
AppCount = 0

uProcess.dwSize = Len(uProcess)
hSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0&)
RProcessFound = ProcessFirst(hSnapshot, uProcess)

Do
i = InStr(1, uProcess.szexeFile, Chr(0))
SzExename = LCase$(Left$(uProcess.szexeFile, i - 1))
WinDirEnv = Environ("Windir") + "\"
WinDirEnv = LCase$(WinDirEnv)

If Right$(SzExename, Len(NameProcess)) = LCase$(NameProcess) Then
AppCount = AppCount + 1
MyProcess = OpenProcess(PROCESS_ALL_ACCESS, False, uProcess.th32ProcessID)
AppKill = TerminateProcess(MyProcess, ExitCode)
Call CloseHandle(MyProcess)
End If
RProcessFound = ProcessNext(hSnapshot, uProcess)
Loop While RProcessFound
Call CloseHandle(hSnapshot)
End If

End Sub


y luego llamas a KillProcess pasandole el nombre del proceso que quieres matar.

espero que te sirva, suerte.
  #4 (permalink)  
Antiguo 25/05/2011, 17:58
 
Fecha de Ingreso: abril-2010
Ubicación: México D.F.
Mensajes: 54
Antigüedad: 14 años
Puntos: 0
De acuerdo Respuesta: Matar procesos con VB. ¿Como?

justo lo que ando buscando, lo intentare publicar en dll para llamarlo desde un ASP y matar procesos "Excel.exe" que se quedan en memoria, y como ya no tengo acceso al servidor de forma física, me alenta muchisimo ...

Ya les cuento como me fué...


ESPERO QUE SEA COMPATIBLE CON WINDOWS 2003 SERVER jejejeje

Edito: Ya lo probé en Windows 7 y funciona a la perfección... identifica el Excel.exe y lo matarili rili ron


Última edición por thetransporterzero; 25/05/2011 a las 18:05
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 17:51.