using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;
using System.Threading;
namespace ProcessMonitor
{
public partial class Form1 : Form
{
/**
* 初始化窗口。
*/
public Form1()
{
InitializeComponent();
//设置listView中的三个列标题。
listView1.Columns.Add("ProcessId",80);
listView1.Columns.Add("ProcessName", 100);
listView1.Columns.Add("StartTime", 170);
//显示矩阵的线条。
listView1.GridLines = true;
//显示试图细节。
listView1.View = View.Details;
//试图的行,可被选中。
listView1.FullRowSelect = true;
//获取当前所有进程。
Process[] processes = Process.GetProcesses();
foreach (Process p in processes)
{
//获取每个进程的三个需要显示到窗口中的属性。
string processId = p.Id.ToString();
string processName = p.ProcessName;
string startTime = "";
//有的进程开始时间无法获取,则设置为其异常信息。
try
{
startTime = getStartTime(p.StartTime);
}
catch (Exception ex)
{
startTime = ex.Message;
}
//将三个属性,加入显示列表中。
ListViewItem item =
new ListViewItem(new string[] { processId, processName,startTime});
listView1.Items.Add(item);
}
}
/**
* 将日历型时间转化为字符串型时间,方便显示。
*/
private string getStartTime(DateTime dateTime)
{
string startTime = null;
string year = dateTime.Year.ToString();
string month = dateTime.Month.ToString();
string day = dateTime.Day.ToString();
string hour = dateTime.Hour.ToString();
string minute = dateTime.Minute.ToString();
string second = dateTime.Second.ToString();
startTime = year + "-" + month + "-" + day + " "
+ hour + ":" + minute + ":" + second;
return startTime;
}
/**
* 窗口的update按钮,刷新窗口中显示的进程。
*/
private void button1_Click(object sender, EventArgs e)
{
//刷新前,清空所有内容。
listView1.Items.Clear();
//获取当前所有进程。
Process[] processes = Process.GetProcesses();
foreach (Process p in processes)
{
//获取每个进程的三个需要显示到窗口中的属性。
string processId = p.Id.ToString();
string processName = p.ProcessName;
//有的进程开始时间无法获取,则设置为其异常信息。
string startTime = null;
try
{
startTime = getStartTime(p.StartTime);
}
catch (Exception ex)
{
startTime = ex.Message;
}
//将三个属性,加入显示列表中。
ListViewItem item =
new ListViewItem(new string[] { processId, processName, startTime });
listView1.Items.Add(item);
}
}
}
}
Windows进程监控工具(1)--Windows下进程获取
原文:http://blog.csdn.net/yanghaitaohhh/article/details/18232985