¿Cómo finalizar un proceso usando VB?
Opción explícita
Dim ProcessID() As Long 'Almacene todos los ID de proceso en el orden de los procesos en la lista1
' - --------- Declaración de tipo API----- ------
Tipo privado PROCESSENTRY32 'Proceso
dwsize As Long
cntusage durante todo el tiempo
th32ProcessID durante todo el tiempo
th32DefaultHeapID durante todo el tiempo
th32ModuleID durante todo el tiempo
cntThreads durante todo el tiempo
th32ParentProcessID tan largo
pcPriClassBase tan largo
dwFlags tan largo
szExeFile como cadena * 1024
Tipo de fin
Tipo privado MODULEENTRY32 'Módulo
dwsize As Long
th32ModuleID As Long
th32ProcessID As Long
GlblcntUsage As Long< / p>
ProccntUsage tan largo
modBaseAddr como byte
modBaseSize tan largo
hModule tan largo
szModule como cadena * 256
szExePath As String * 1024
Tipo de fin
PrivateType THREADENTRY32 'Thread
dwsize As Long
cntusage Mientras dure
th32threadID Mientras dure
th32OwnerProcessID Mientras dure
tpBasePri Mientras dure
tpDeltaPri Mientras dure
dwFlags As Long
Tipo de fin
'------------------------------ ---- ---------- Declaración API --------------- ------------------- ---- ------------------
Función de declaración privada CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Función de declaración privada CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags mientras, ByVal th32ProcessID mientras) Mientras
Función de declaración privada Module32First Lib "kernel32" (ByVal hSnapshot mientras, lppe como MODULEENTRY3
2) Mientras
Módulo de función de declaración privada32Next Lib "kernel32" (ByVal hSnapshot As Long, lppe As MODULEENTRY32) Mientras
Proceso de función de declaración privada32Primera Lib "kernel32" (ByVal hSnapshot As Long, lppe As MODULEENTRY32) As Long
Proceso de función de declaración privada32First Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
Proceso de función de declaración privada32Next Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
Función de declaración privada Thread32First Lib "kernel32" (ByVal hSnapshot As Long, lppe As THREADENTRY32) As Long
Función de declaración privada Process32First Lib "kernel32" (ByVal hSnapshot siempre, lppe como THREADENTRY32) mientras
Proceso de función de declaración privada32Primera Lib "kernel32" (ByVal hSnapshot mientras, lppe como THREADENTRY32) mientras
Función de declaración privada Thread32Next Lib "kernel32" (ByVal hSnapshot mientras, lppe como THREADENTRY32) mientras
Función de declaración privada TerminateProcess Lib "kernel32" (ByVal hProcess mientras, lppe como THREADENTRY32) mientras
Función de declaración privada TerminateProcess Lib "kernel32" (ByVal hProcess mientras, ByVal uExitCode mientras) Mientras
Función de declaración privada OpenProcess Lib "kernel32" (ByVal dwDescriptor mientras, lppe como THREADENTRY32) Mientras
Función de declaración privada (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) Mientras
Función de declaración privada GetCurrentProcessId Lib "kernel32" ()
Siempre
'---------------------------------------- Declaración de constante API---------------------------------------------- - ------
Const privada TH32CS_SNAPTHEAPLIST = & H1
Const privada TH32CS_SNAPPROCESS = &H2
Const privada TH32CS_SNAPTHREAD = &H4
Const privada TH32CS_SNAPMODULE = &H8
Const privada TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST o TH32CS_SNAPPROCESS o TH32CS_SNAPTHREAD o TH32CS_SNAPMODULE)
Const privada TH32CS_INHERIT = &H8000
Const privada PROCESS_TERMINATE = &H1&
Subcomando privado1_Click()
Atenuar proceso como PROCESSENTRY32
Atenuar ProcSnap mientras
Atenuar cntProcess mientras
cntProcess = 0
List1.
ProcSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
Si ProcSnap entonces
Process.dwsize = 1060 ' Uso común
Process32First ProcSnap, Process
Hacer hasta Process32Next(ProcSnap, Process) < 1 ' Recorre todos los procesos hasta que el valor de retorno sea False
List1.AddItem Trim(Process.szExeFile)
List1.AddItem Trim(Process.szExeFile)
List2.AddItem Trim(Process.szExeFile)