using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;using System.Diagnostics; namespace SystemProcess{/// <summary>/// Form1 的摘要说明。/// </summary>public class Form1 : System.Windows.Forms.Form{private System.Windows.Forms.GroupBox groupBox1;private System.Windows.Forms.GroupBox groupBox2;private System.Windows.Forms.Label label1;private System.Windows.Forms.Label label2;private System.Windows.Forms.Label label3;private System.Windows.Forms.Label label4;private System.Windows.Forms.Label label5;private System.Windows.Forms.Label label6;private System.Windows.Forms.Label label7;private System.Windows.Forms.Label label8;private System.Windows.Forms.Label label9;private System.Windows.Forms.Label label10;private System.Windows.Forms.Label label11;private System.Windows.Forms.Label label12;private System.Windows.Forms.Label label13;private System.Windows.Forms.Label label14;private System.Windows.Forms.Button button1;private System.Windows.Forms.ListBox listBox1;/// <summary>/// 必需的设计器变量。/// </summary>private System.ComponentModel.Container components = null;public Form1(){//// Windows 窗体设计器支持所必需的//InitializeComponent();//// TODO: 在 InitializeComponent 调用后添加任何构造函数代码//}/// <summary>/// 清理所有正在使用的资源。/// </summary>protected override void Dispose( bool disposing ){if( disposing ){if (components != null) {components.Dispose();}}base.Dispose( disposing );}#region Windows 窗体设计器生成的代码/// <summary>/// 设计器支持所需的方法 - 不要使用代码编辑器修改/// 此方法的内容。/// </summary>private void InitializeComponent(){this.groupBox1 = new System.Windows.Forms.GroupBox();this.listBox1 = new System.Windows.Forms.ListBox();this.button1 = new System.Windows.Forms.Button();this.groupBox2 = new System.Windows.Forms.GroupBox();this.label14 = new System.Windows.Forms.Label();this.label13 = new System.Windows.Forms.Label();this.label12 = new System.Windows.Forms.Label();this.label11 = new System.Windows.Forms.Label();this.label10 = new System.Windows.Forms.Label();this.label9 = new System.Windows.Forms.Label();this.label8 = new System.Windows.Forms.Label();this.label7 = new System.Windows.Forms.Label();this.label6 = new System.Windows.Forms.Label();this.label5 = new System.Windows.Forms.Label();this.label4 = new System.Windows.Forms.Label();this.label3 = new System.Windows.Forms.Label();this.label2 = new System.Windows.Forms.Label();this.label1 = new System.Windows.Forms.Label();this.groupBox1.SuspendLayout();this.groupBox2.SuspendLayout();this.SuspendLayout();// // groupBox1// this.groupBox1.Controls.Add(this.listBox1);this.groupBox1.Controls.Add(this.button1);this.groupBox1.Location = new System.Drawing.Point(8, 8);this.groupBox1.Name = "groupBox1";this.groupBox1.Size = new System.Drawing.Size(144, 256);this.groupBox1.TabIndex = 0;this.groupBox1.TabStop = false;this.groupBox1.Text = "系统进程列表";// // listBox1// this.listBox1.ItemHeight = 12;this.listBox1.Location = new System.Drawing.Point(8, 16);this.listBox1.Name = "listBox1";this.listBox1.Size = new System.Drawing.Size(128, 196);this.listBox1.TabIndex = 2;this.listBox1.SelectedIndexChanged = new System.EventHandler(this.listBox1_SelectedIndexChanged);// // button1// this.button1.Location = new System.Drawing.Point(8, 224);this.button1.Name = "button1";this.button1.Size = new System.Drawing.Size(128, 23);this.button1.TabIndex = 1;this.button1.Text = "更新系统进程信息";this.button1.Click = new System.EventHandler(this.button1_Click);// // groupBox2// this.groupBox2.Controls.Add(this.label14);this.groupBox2.Controls.Add(this.label13);this.groupBox2.Controls.Add(this.label12);this.groupBox2.Controls.Add(this.label11);this.groupBox2.Controls.Add(this.label10);this.groupBox2.Controls.Add(this.label9);this.groupBox2.Controls.Add(this.label8);this.groupBox2.Controls.Add(this.label7);this.groupBox2.Controls.Add(this.label6);this.groupBox2.Controls.Add(this.label5);this.groupBox2.Controls.Add(this.label4);this.groupBox2.Controls.Add(this.label3);this.groupBox2.Controls.Add(this.label2);this.groupBox2.Controls.Add(this.label1);this.groupBox2.Location = new System.Drawing.Point(160, 8);this.groupBox2.Name = "groupBox2";this.groupBox2.Size = new System.Drawing.Size(192, 256);this.groupBox2.TabIndex = 1;this.groupBox2.TabStop = false;this.groupBox2.Text = "被选择的系统进程信息";// // label14// this.label14.Location = new System.Drawing.Point(8, 232);this.label14.Name = "label14";this.label14.Size = new System.Drawing.Size(168, 16);this.label14.TabIndex = 13;this.label14.Text = "虚拟内存:";// // label13// this.label13.Location = new System.Drawing.Point(8, 216);this.label13.Name = "label13";this.label13.Size = new System.Drawing.Size(168, 16);this.label13.TabIndex = 12;this.label13.Text = "物理内存:";// // label12// this.label12.Location = new System.Drawing.Point(8, 200);this.label12.Name = "label12";this.label12.Size = new System.Drawing.Size(168, 16);this.label12.TabIndex = 11;this.label12.Text = "未分页系统内存:";// // label11// this.label11.Location = new System.Drawing.Point(8, 184);this.label11.Name = "label11";this.label11.Size = new System.Drawing.Size(168, 16);this.label11.TabIndex = 10;this.label11.Text = "分页内存:";// // label10// this.label10.Location = new System.Drawing.Point(8, 168);this.label10.Name = "label10";this.label10.Size = new System.Drawing.Size(168, 16);this.label10.TabIndex = 9;this.label10.Text = "分页虚拟内存:";// // label9// this.label9.Location = new System.Drawing.Point(8, 152);this.label9.Name = "label9";this.label9.Size = new System.Drawing.Size(168, 16);this.label9.TabIndex = 8;this.label9.Text = "峰值分页内存:";// // label8// this.label8.Location = new System.Drawing.Point(8, 136);this.label8.Name = "label8";this.label8.Size = new System.Drawing.Size(168, 16);this.label8.TabIndex = 7;this.label8.Text = "峰值虚拟内存:";// // label7// this.label7.Location = new System.Drawing.Point(8, 120);this.label7.Name = "label7";this.label7.Size = new System.Drawing.Size(168, 16);this.label7.TabIndex = 6;this.label7.Text = "专用内存:";// // label6// this.label6.Location = new System.Drawing.Point(8, 104);this.label6.Name = "label6";this.label6.Size = new System.Drawing.Size(168, 16);this.label6.TabIndex = 5;this.label6.Text = "启动时间:";// // label5// this.label5.Location = new System.Drawing.Point(8, 88);this.label5.Name = "label5";this.label5.Size = new System.Drawing.Size(168, 16);this.label5.TabIndex = 4;this.label5.Text = "线程优先级:";// // label4// this.label4.Location = new System.Drawing.Point(8, 72);this.label4.Name = "label4";this.label4.Size = new System.Drawing.Size(168, 16);this.label4.TabIndex = 3;this.label4.Text = "CPU占用时间:";// // label3// this.label3.Location = new System.Drawing.Point(8, 56);this.label3.Name = "label3";this.label3.Size = new System.Drawing.Size(168, 16);this.label3.TabIndex = 2;this.label3.Text = "启动线程数:";// // label2// this.label2.Location = new System.Drawing.Point(8, 40);this.label2.Name = "label2";this.label2.Size = new System.Drawing.Size(168, 16);this.label2.TabIndex = 1;this.label2.Text = "进程ID:";// // label1// this.label1.Location = new System.Drawing.Point(8, 24);this.label1.Name = "label1";this.label1.Size = new System.Drawing.Size(168, 16);this.label1.TabIndex = 0;this.label1.Text = "进程映像名:";// // Form1// this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);this.ClientSize = new System.Drawing.Size(360, 270);this.Controls.Add(this.groupBox2);this.Controls.Add(this.groupBox1);this.MaximizeBox = false;this.Name = "Form1";this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;this.Text = "演示获取系统进程信息";this.Load = new System.EventHandler(this.Form1_Load);this.groupBox1.ResumeLayout(false);this.groupBox2.ResumeLayout(false);this.ResumeLayout(false);}#endregion/// <summary>/// 应用程序的主入口点。/// </summary>[STAThread]static void Main() {Application.Run(new Form1());}private void button1_Click(object sender, System.EventArgs e){//获取系统当前所有进程 this.listBox1.Items.Clear();Process[] MyProcesses=Process.GetProcesses();foreach(Process MyProcess in MyProcesses){this.listBox1.Items.Add(MyProcess.ProcessName);}this.listBox1.SelectedIndex=0;}private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e){//显示选择的系统进程详细信息try{string ProcessName=this.listBox1.Text;this.groupBox2.Text=ProcessName "进程的详细信息";Process[] MyProcess=Process.GetProcessesByName(ProcessName);this.label1.Text="进程映像名:" MyProcess[0].ProcessName;this.label2.Text="进程ID:" MyProcess[0].Id;this.label3.Text="启动线程数:" MyProcess[0].Threads.Count.ToString();this.label4.Text="CPU占用时间:" MyProcess[0].TotalProcessorTime.ToString();this.label5.Text="线程优先级:" MyProcess[0].PriorityClass.ToString();this.label6.Text="启动时间:" MyProcess[0].StartTime.ToLongTimeString();this.label7.Text="专用内存:" (MyProcess[0].PrivateMemorySize/1024).ToString() "K";this.label8.Text="峰值虚拟内存:" (MyProcess[0].PeakVirtualMemorySize/1024).ToString() "K";this.label9.Text="峰值分页内存:" (MyProcess[0].PeakPagedMemorySize/1024).ToString() "K";this.label10.Text="分页系统内存:" (MyProcess[0].PagedSystemMemorySize/1024).ToString() "K";this.label11.Text="分页内存:" (MyProcess[0].PagedMemorySize/1024).ToString() "K";this.label12.Text="未分页系统内存:" (MyProcess[0].NonpagedSystemMemorySize/1024).ToString() "K";this.label13.Text="物理内存:" (MyProcess[0].WorkingSet/1024).ToString() "K";this.label14.Text="虚拟内存:" (MyProcess[0].VirtualMemorySize/1024).ToString() "K";}catch(Exception Err){ //不处理产生的异常}}private void Form1_Load(object sender, System.EventArgs e){ button1_Click(null,null);}}}
评论