vb.net 获取进程列表

这个方法肯定不是最好的,查到的资料还有使用进程快照的,但是不知道为什么vs中不能使用进程的结构体PROCESSENTRY32

Public Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Public Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Public Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long

以下只是实现了方法而已,优化再考虑。


1.必须是用resume next,否则会弹出当前未运行或者拒绝访问等

 On Error Resume Next

        processes = System.Diagnostics.Process.GetProcesses()'获取进程列表数组
        Label1.Text = "进程数量:" + CStr(processes.Length)
        For i = 0 To processes.Length - 1
            childProcess.proces = processes(i)
            childProcess.Name = childProcess.proces.ProcessName'当前进程的名称
            childProcess.ID = childProcess.proces.Id'当前进程的PID
            childProcess.Path = childProcess.proces.MainModule.FileName.ToString()'当前进程的路径


            parentProcess.ID = ParentID(childProcess.proces.ProcessName)’获取父进程PID
            parentProcess.proces = Process.GetProcessById(parentProcess.ID)
            parentProcess.Name = parentProcess.proces.ProcessName'父进程名称
            parentProcess.Path = parentProcess.proces.MainModule.FileName.ToString()'父进程路径


            With ListView1'listview显示所有信息
                Dim lItem As System.Windows.Forms.ListViewItem = ListView1.Items.Add(childProcess.Name)
                With lItem
                    .SubItems.Add(CStr(childProcess.ID))
                    .SubItems.Add(childProcess.Path)
                    .SubItems.Add(parentProcess.Name)
                    .SubItems.Add(CStr(parentProcess.ID))
                    .SubItems.Add(parentProcess.Path)
                End With
            End With

        Next

‘获取当前进程的父进程PID

    Private Function ParentID(ByVal pn As String) As Integer
        Dim parentd As New PerformanceCounter("Process", "Creating Process ID", pn)
        Return parentd.NextValue
    End Function

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值