获取系统进程到列表框
exe内包括 一个list1 一个command 一个label1
请复制如下代码到代码窗口中....
'
CreateToolhelpSnapshot获取进程快照的API 声明
Private Declare Function CreateToolhelpSnapshot Lib " kernel32 " Alias " CreateToolhelp32Snapshot " (ByVal lFlags As Long , ByVal lProcessID As Long ) As Long
' ProcessFirst用于获取第一个进程的PROCESSENTRY32结构信息数据
Private Declare Function ProcessFirst Lib " kernel32 " Alias " Process32First " (ByVal hSnapShot As Long , uProcess As PROCESSENTRY32) As Long
' ProcessNext用于获取下一个进程的PROCESSENTRY32结构信息数据
Private Declare Function ProcessNext Lib " kernel32 " Alias " Process32Next " (ByVal hSnapShot As Long , uProcess As PROCESSENTRY32) As Long
' TerminateProcess用于关闭进程句柄
Private Declare Function TerminateProcess Lib " kernel32 " (ByVal hProcess As Long , ByVal uExitCode As Long ) As Long
' OpenProcess 用于打开进程句柄
Private Declare Function OpenProcess Lib " kernel32 " (ByVal dwDesiredAccess As Long , ByVal bInheritHandle As Long , ByVal dwProcessId As Long ) As Long
Const MAX_PATH As Integer = 260
Private 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 * MAX_PATH
End Type
Const TH32CS_SNAPheaplist = & H1
Const TH32CS_SNAPPROCESS = & H2
Const TH32CS_SNAPthread = & H4
Const TH32CS_SNAPmodule = & H8
Const TH32CS_SNAPall = TH32CS_SNAPPROCESS + TH32CS_SNAPheaplist + TH32CS_SNAPthread + TH32CS_SNAPmodule
Private Sub Command1_Click()
Call getexename
End Sub
Private Sub Form_Load()
Call getexename
Command1.Caption = " 刷新 "
End Sub
Private Sub getexename()
List1.Clear ' 清空LIST1
Dim i As Long , lPid As Long
Dim Proc As PROCESSENTRY32
Dim hSnapShot As Long
hSnapShot = CreateToolhelpSnapshot(TH32CS_SNAPall, 0 ) ' 获得进程“快照”的句柄
Proc.dwSize = Len (Proc)
lPid = ProcessFirst(hSnapShot, Proc) ' 获取第一个进程的PROCESSENTRY32结构信息数据
i = 0
Do While lPid <> 0 ' 当返回值非零时继续获取下一个进程
List1.AddItem Proc.szExeFile ' 把所有进程载入LIST框
i = i + 1
lPid = ProcessNext(hSnapShot, Proc) ' 循环获取下一个进程的PROCESSENTRY32结构信息数据
Loop
Label1.Caption = " 进程数: " & List1.ListCount - 1
End Sub
Private Declare Function CreateToolhelpSnapshot Lib " kernel32 " Alias " CreateToolhelp32Snapshot " (ByVal lFlags As Long , ByVal lProcessID As Long ) As Long
' ProcessFirst用于获取第一个进程的PROCESSENTRY32结构信息数据
Private Declare Function ProcessFirst Lib " kernel32 " Alias " Process32First " (ByVal hSnapShot As Long , uProcess As PROCESSENTRY32) As Long
' ProcessNext用于获取下一个进程的PROCESSENTRY32结构信息数据
Private Declare Function ProcessNext Lib " kernel32 " Alias " Process32Next " (ByVal hSnapShot As Long , uProcess As PROCESSENTRY32) As Long
' TerminateProcess用于关闭进程句柄
Private Declare Function TerminateProcess Lib " kernel32 " (ByVal hProcess As Long , ByVal uExitCode As Long ) As Long
' OpenProcess 用于打开进程句柄
Private Declare Function OpenProcess Lib " kernel32 " (ByVal dwDesiredAccess As Long , ByVal bInheritHandle As Long , ByVal dwProcessId As Long ) As Long
Const MAX_PATH As Integer = 260
Private 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 * MAX_PATH
End Type
Const TH32CS_SNAPheaplist = & H1
Const TH32CS_SNAPPROCESS = & H2
Const TH32CS_SNAPthread = & H4
Const TH32CS_SNAPmodule = & H8
Const TH32CS_SNAPall = TH32CS_SNAPPROCESS + TH32CS_SNAPheaplist + TH32CS_SNAPthread + TH32CS_SNAPmodule
Private Sub Command1_Click()
Call getexename
End Sub
Private Sub Form_Load()
Call getexename
Command1.Caption = " 刷新 "
End Sub
Private Sub getexename()
List1.Clear ' 清空LIST1
Dim i As Long , lPid As Long
Dim Proc As PROCESSENTRY32
Dim hSnapShot As Long
hSnapShot = CreateToolhelpSnapshot(TH32CS_SNAPall, 0 ) ' 获得进程“快照”的句柄
Proc.dwSize = Len (Proc)
lPid = ProcessFirst(hSnapShot, Proc) ' 获取第一个进程的PROCESSENTRY32结构信息数据
i = 0
Do While lPid <> 0 ' 当返回值非零时继续获取下一个进程
List1.AddItem Proc.szExeFile ' 把所有进程载入LIST框
i = i + 1
lPid = ProcessNext(hSnapShot, Proc) ' 循环获取下一个进程的PROCESSENTRY32结构信息数据
Loop
Label1.Caption = " 进程数: " & List1.ListCount - 1
End Sub