获取系统进程到列表框
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
