获取系统进程

本文介绍了一个使用Visual Basic编写的简单程序,该程序能够利用Windows API函数获取当前系统的所有进程名称,并将其显示在一个列表框中。文章提供了完整的源代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 获取系统进程到列表框

exe内包括 一个list1 一个command 一个label1
请复制如下代码到代码窗口中....

 

 'CreateToolhelpSnapshot获取进程快照的API 声明 
  Private Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As LongAs 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 LongAs Long 
  
'OpenProcess 用于打开进程句柄 
  Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As LongAs 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结构信息数据 
= 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 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值