获取进程列表
2006-09-05 18:55
393 查看
Option Explicit On
Private Const MAX_PATH As Integer = 260
Private Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Private Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapShot As Long, ByVal uProcess As PROCESSENTRY32) As Long
Private Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapShot As Long, ByVal uProcess As PROCESSENTRY32) As Long
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
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Const TH32CS_SNAPPROCESS = &H2
Private Const TH32CS_SNAPheaplist = &H1
Private Const TH32CS_SNAPthread = &H4
Private Const TH32CS_SNAPmodule = &H8
Private Const TH32CS_SNAPall = TH32CS_SNAPPROCESS + TH32CS_SNAPheaplist + TH32CS_SNAPthread + TH32CS_SNAPmodule
'4.添加代码:
Private Sub Command1_Click()
Dim i As Long
Dim proc As PROCESSENTRY32
Dim snap As Long
Dim exename As String
Dim theloop As Long
Dim ret As ListItem
ListView1.ListItems.Clear() '清空所有内容
snap = CreateToolhelpSnapshot(TH32CS_SNAPall, 0)
proc.dwSize = Len(proc)
theloop = ProcessFirst(snap, proc)
i = 0
While theloop <> 0
exename = proc.szExeFile
ret = ListView1.ListItems.Add(, "first" & CStr(i), exename)
ListView1.ListItems("first" & CStr(i)).SubItems(1) = proc.th32ProcessID
i = i + 1
theloop = ProcessNext(snap, proc)
End While
CloseHandle(snap)
End Sub
'Command2是终止进程的,慎用!
Private Sub Command2_Click()
Dim i As Long
hand = OpenProcess(process_terminate, True, CLng(ListView1.SelectedItem.SubItems(1)))
TerminateProcess(hand, 0)
Call Command1_Click()
End Sub
Private Sub Form_Load()
Dim header As ColumnHeader
ListView1.View = lvwReport
ListView1.ColumnHeaders.Clear()
header = ListView1.ColumnHeaders.Add(, "first", "进程", 4000)
header = ListView1.ColumnHeaders.Add(, "second", "ID", 1400)
ListView1.Refresh()
End Sub
Private Const MAX_PATH As Integer = 260
Private Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Private Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapShot As Long, ByVal uProcess As PROCESSENTRY32) As Long
Private Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapShot As Long, ByVal uProcess As PROCESSENTRY32) As Long
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
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Const TH32CS_SNAPPROCESS = &H2
Private Const TH32CS_SNAPheaplist = &H1
Private Const TH32CS_SNAPthread = &H4
Private Const TH32CS_SNAPmodule = &H8
Private Const TH32CS_SNAPall = TH32CS_SNAPPROCESS + TH32CS_SNAPheaplist + TH32CS_SNAPthread + TH32CS_SNAPmodule
'4.添加代码:
Private Sub Command1_Click()
Dim i As Long
Dim proc As PROCESSENTRY32
Dim snap As Long
Dim exename As String
Dim theloop As Long
Dim ret As ListItem
ListView1.ListItems.Clear() '清空所有内容
snap = CreateToolhelpSnapshot(TH32CS_SNAPall, 0)
proc.dwSize = Len(proc)
theloop = ProcessFirst(snap, proc)
i = 0
While theloop <> 0
exename = proc.szExeFile
ret = ListView1.ListItems.Add(, "first" & CStr(i), exename)
ListView1.ListItems("first" & CStr(i)).SubItems(1) = proc.th32ProcessID
i = i + 1
theloop = ProcessNext(snap, proc)
End While
CloseHandle(snap)
End Sub
'Command2是终止进程的,慎用!
Private Sub Command2_Click()
Dim i As Long
hand = OpenProcess(process_terminate, True, CLng(ListView1.SelectedItem.SubItems(1)))
TerminateProcess(hand, 0)
Call Command1_Click()
End Sub
Private Sub Form_Load()
Dim header As ColumnHeader
ListView1.View = lvwReport
ListView1.ColumnHeaders.Clear()
header = ListView1.ColumnHeaders.Add(, "first", "进程", 4000)
header = ListView1.ColumnHeaders.Add(, "second", "ID", 1400)
ListView1.Refresh()
End Sub
相关文章推荐
- Android 获取进程列表
- 获取进程、服务、任务列表
- 枚举PEB获取进程模块列表
- 【Demo 0076】获取进程中模块列表
- 如何获取linux下的进程pid列表
- 几种获取进程列表的方法
- 获取windows进程列表,并以字符串形式查询是否存在某一进程
- 枚举PEB获取进程模块列表
- 获取进程、服务、任务列表
- VC获取系统进程列表、查找进程、关闭进程
- windows 获取进程列表的几种方式
- android 获取进程、服务、任务列表
- Java获取进程列表的方法
- 获取系统中的进程列表(win 32 SDK)
- 获取进程、服务、任务列表
- 获取进程列表和结束进程
- C# 获取系统当前进程列表 浮兮 视频解析
- C++ 获取进程列表 并关闭相应的进程
- 几种获取进程列表的方法
- 获取windows进程列表,并以字符串形式查询是否存在某一进程