How to show the computer (PC) processes with all the details like CPU Time and Memory Usage in C#

1 Answer

0 votes
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Diagnostics;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string machineName = ".";

            Process[] processes = null;
			try
			{
                processes = Process.GetProcesses(machineName);
			}
			catch(Exception ex)
			{
				MessageBox.Show(ex.Message);
				Application.Exit();
			}
            
            int totalThreads = 0;
			foreach(Process p in processes)
			{
				try
				{
                    string[] processesInfo = new string[]{p.ProcessName, p.Id.ToString(), 
                                                          p.StartTime.ToShortTimeString(),
                                                          p.TotalProcessorTime.Duration().Hours.ToString()+
                                                          ":"+
                                                          p.TotalProcessorTime.Duration().Minutes.ToString()+
                                                          ":"+
                                                          p.TotalProcessorTime.Duration().Seconds.ToString(),
                                                         (p.WorkingSet64/1024).ToString()+"k",
                                                         (p.PeakWorkingSet64/1024).ToString()+"k",
                                                          p.HandleCount.ToString(),
                                                          p.Threads.Count.ToString()};
                    ListViewItem lvi = new ListViewItem(processesInfo);
					listView.Items.Add(lvi);
					totalThreads += p.Threads.Count;
				}
				catch{}
			}

            statusBar.Panels[0].Text = "Processes : " + processes.Length.ToString();
            statusBar.Panels[1].Text = "Threads : " + totalThreads.ToString();
        }
    }
}


answered Mar 15, 2015 by avibootz

Related questions

...