VB.NET实现超级ptm查看器
来源:互联网
作者:西部数码
时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
.Add(myProcesses(zj).PeakVirtualMemorySize & "峰值虚拟内存大小")
.Add(myProcesses(zj).PrivateMemorySize & "专用内存大小")
.Add(myProcesses(zj).StartTime & "进程启动的时间")
.Add(myProcesses(zj).TotalProcessorTime.Seconds & "进程的总的处理器时间")
.Add(myProcesses(zj).UserProcessorTime.Seconds & "进程的用户处理器时间")
.Add(myProcesses(zj).VirtualMemorySize & "进程的虚拟内存大小")
End With
ListBox3.Items.Clear()
TabPage1.Text = "进程" & ListBox1.Items.Item(zj) & "的基本信息"
TabPage2.Text = "进程" & ListBox1.Items.Item(zj) & "相关的线程信息"
TabPage3.Text = "进程" & ListBox1.Items.Item(zj) & "相关的模块信息"
'/////////////////////////////////////////////
f = myProcesses(zj).Threads.Count
Label4.Text = "进程" & ListBox1.Items.Item(zj) & "共有" & f & "个相关的线程,线程ID信息如下:"
Dim int, pk, m, n
For n = 0 To f - 1
ListBox3.Items.Add(myProcesses(zj).Threads(n).Id)
Next
'///////////////////////////////////////
ListBox5.Items.Clear()
Dim zha, kl
zha = myProcesses(zj).Modules.Count
Label5.Text = "与进程" & ListBox1.Items.Item(zj) & "共有" & zha & "个相关的模块,模块位置信息如下:"
For kl = 0 To zha - 1
ListBox5.Items.Add(myProcesses(zj).Modules(kl).FileName)
Next
End Sub
Private Sub ListBox3_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox3.DoubleClick
ListBox4.Items.Clear()
Dim f, n
f = myProcesses(zj).Threads.Count
n = ListBox3.SelectedIndex
Label6.Text = "线程" & ListBox3.Items.Item(n) & "相关信息"
With ListBox4.Items‘与进程相关的线程信息见System.Diagnostics.processThread类。因为Processes.threads属性是返回thread对象数组而thread对象数组的实例是由ProcessThread类来创建,thread对象数组的信息是包含在System.Diagnostics. ProcessThread类中。
.Add(myProcesses(zj).Threads(n).BasePriority)
.Add(myProcesses(zj).Threads(n).CurrentPriority)
.Add(myProcesses(zj).Threads(n).PriorityLevel)
.Add(myProcesses(zj).Threads(n).PrivilegedProcessorTime)
.Add(myProcesses(zj).Threads(n).StartTime)
.Add(myProcesses(zj).Threads(n).ThreadState.ToString)
.Add(myProcesses(zj).Threads(n).TotalProcessorTime.Seconds)
.Add(myProcesses(zj).Threads(n).UserProcessorTime.Seconds)
.Add(myProcesses(zj).Threads(n).WaitReason.ToString)
End With
End Sub
Private Sub ListBox5_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox5.DoubleClick
ListBox6.Items.Clear()
Dim f, n, m
f = myProcesses(zj).Modules.Count
n = ListBox5.SelectedIndex
Label7.Text = "模块" & ListBox5.Items.Item(n) & "相关信息"
With ListBox6.Items‘与进程相关的模块信息见System.Diagnostics. ProcessModule类,因为Processes.Modules属性是返回Modules对象数组而Modules对象数组的实例是由ProcessModule类来创建,Modules对象数组的信息是包含在System.Diagnostics. ProcessModule类中。
m = Hex(myProcesses(zj).Modules(n).BaseAddress.ToInt32)‘转换成16进制
.Add(m)
m = Hex(myProcesses(zj).Modules(n).EntryPointAddress.ToInt32)
.Add(m)
.Add(myProcesses(zj).Modules(n).FileVersionInfo)
.Add(myProcesses(zj).Modules(n).ModuleMemorySize)
.Add(myProcesses(zj).Modules(n).ModuleName)
End With
End Sub
End Class 这下就大工告成了,最后对程做一点补充说明,各位读者,当你知道了如何编写这个程序时,你可能会想如果只是写一个单纯的这个程序你可能会觉得没什么意义,那如何才可以将这段程序发挥他更大的意义?就让我来告诉你。其实这段代码并不是我刻意编写的,而是一个局域网中的远程控制的一部分。扫描客户机上运行的进程,查看客户机的资源,将获得的信息发个服务器,并可以通过Processes类来关闭客户机上的进程,以便管理者对客户机进行管理。此外写这篇文章的另一个目的是希望读者更快的掌握.net中System.Diagnostics.Process,System.Diagnostics.processThread,System.Diagnostics. ProcessModule类。在vb.net和win2000通过 。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



