网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > DotNet > VB.NET > VB.Net实现进程监视器的方法  

VB.Net实现进程监视器的方法

2008-01-02  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

  1)可以查看进程的各项基本信息,如cpu,内存,父进程,执行路径,创建者等 网管u家u.bitsCN.com

  2)可以中止进程,创建新进程

网管联盟bitsCN_com

  3)可以配置目标进程,配置刷新速度

网管网www.bitscn.com

  最终效果图: 网管bitscn_com

网管u家u.bitsCN.com

  (以下给出部分代码,其余像进程的创建、中止等,使用process类将很容易实现) 网管网www_bitscn_com

  1)使用wmi获取父进程id,进程创建者 网管下载dl.bitscn.com

  (注意,使用wmi获得的内容,不宜循环刷新,这样代价比较大) 网管网www_bitscn_com

  添加命名空间: 网管u家u.bitscn@com

  Imports System.Management

网管网www_bitscn_com

  Public Class HandleObjectReady 网管u家u.bitscn@com

  Private complete As Boolean = false

网管u家u.bitscn@com

  Private obj As ManagementBaseObject

网管联盟bitsCN@com

  Public ReadOnly Property Complete As Boolean

网管下载dl.bitscn.com

  Get

网管u家u.bitsCN.com

  Return complete

中国网管联盟bitsCN.com

  End Get 网管网www_bitscn_com

  End Property 网管论坛bbs_bitsCN_com

  Public ReadOnly Property Obj As ManagementBaseObject 中国网管论坛bbs.bitsCN.com

  Get 网管bitscn_com

  Return obj

网管联盟bitsCN@com

  End Get

网管联盟bitsCN_com

  End Property

中国网管论坛bbs.bitsCN.com

  Public Sub Done(ByVal sender As Object, ByVal e As ObjectReadyEventArgs) 网管联盟bitsCN@com

  complete = true 网管u家u.bitscn@com

  obj = e.NewObject

网管联盟bitsCN@com

  End Sub

中国网管论坛bbs.bitsCN.com

  End Class 网管网www_bitscn_com

  Private Sub FillDetailUseWmi(ByVal pID As Integer)

网管联盟bitsCN@com

  Dim searcher As ManagementObjectSearcher = New ManagementObjectSearcher(("Select * From Win32_Process Where ProcessID=" + pID))

中国网管联盟bitsCN.com

  Dim moc As ManagementObjectCollection = searcher.Get

网管联盟bitsCN_com

  Dim observer As ManagementOperationObserver = New ManagementOperationObserver

网管网www_bitscn_com

  Dim hor As HandleObjectReady = New HandleObjectReady 网管网www.bitscn.com

  AddHandler observer.ObjectReady, AddressOf hor.Done 网管u家u.bitscn@com

  For Each mo As ManagementObject In moc

网管u家u.bitscn@com

  mo.InvokeMethod(observer, "GetOwner", Nothing)

网管联盟bitsCN_com

  While Not hor.Complete

网管网www_bitscn_com

  System.Threading.Thread.Sleep(500) 网管网www.bitscn.com

  End While 网管网www_bitscn_com

  Dim user As String = ""

中国网管联盟bitsCN.com

  (hor.Obj("returnValue")。ToString = "0")

网管u家u.bitscn@com

  user = hor.Obj.Properties("User")。Value.ToString

中国网管论坛bbs.bitsCN.com

  If Not Me.mDict.ContainsKey(pID) Then  Return 网管网www.bitscn.com

  End If

网管网www.bitscn.com

  If ((Not (mo("ParentProcessID")) Is Nothing)  _

网管联盟bitsCN_com

  AndAlso Me.mDict.ContainsKey(Convert.ToInt32(mo("ParentProcessID")))) Then 网管联盟bitsCN_com

  Me.mDict(pID)。ParentProce = Me.mDict(Convert.ToInt32(mo("ParentProcessID")))。ProceName 网管网www.bitscn.com

  End If

网管网www_bitscn_com

  Me.mDict(pID)。Creator = user

网管u家u.bitscn@com

  If (Not (Me.HandleDetailList) Is Nothing) Then 网管网www.bitscn.com

  Me.HandleDetailList(Me.mDict(pID)) 网管u家u.bitsCN.com

  End If 网管联盟bitsCN@com

  Next

网管bitscn_com

  searcher.Dispose 网管论坛bbs_bitsCN_com

  searcher = Nothing

网管u家u.bitsCN.com

  moc.Dispose

网管bitscn_com

  moc = Nothing

网管u家u.bitscn@com

  observer = Nothing

网管u家u.bitscn@com

  hor = Nothing

网管论坛bbs_bitsCN_com

  End Sub 网管网www.bitscn.com

网管下载dl.bitscn.com


TAGs
 上一篇:VB.NET关于加密算法   下一篇:用vb.net实现闹钟提醒程序
VB.Net实现进程监视器的方法 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户