Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Cómo finalizar un proceso usando VB?

¿Cómo finalizar un proceso usando VB?

'Agregue tres CommandButtons y un ListBox

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)