<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FC_Sharp%2FDevelopment_Class%2FProcess</id>
		<title>Csharp/C Sharp/Development Class/Process - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FC_Sharp%2FDevelopment_Class%2FProcess"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/Development_Class/Process&amp;action=history"/>
		<updated>2026-04-29T20:32:33Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/C_Sharp/Development_Class/Process&amp;diff=1147&amp;oldid=prev</id>
		<title> в 15:31, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/Development_Class/Process&amp;diff=1147&amp;oldid=prev"/>
				<updated>2010-05-26T15:31:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:31, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/C_Sharp/Development_Class/Process&amp;diff=1148&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/Development_Class/Process&amp;diff=1148&amp;oldid=prev"/>
				<updated>2010-05-26T11:43:14Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Build up a list of the running processes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
class MainClass {&lt;br /&gt;
    static void Main() {&lt;br /&gt;
        &lt;br /&gt;
        List&amp;lt;String&amp;gt; processes = new List&amp;lt;String&amp;gt;();&lt;br /&gt;
        foreach (Process process in Process.GetProcesses())&lt;br /&gt;
            processes.Add(process.ProcessName);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CloseMainWindow,WaitForExit==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
using System;&lt;br /&gt;
using System.Threading;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
class MainClass&lt;br /&gt;
{&lt;br /&gt;
    public static void Main()&lt;br /&gt;
    {&lt;br /&gt;
        using (Process process = Process.Start(&amp;quot;notepad.exe&amp;quot;, @&amp;quot;c:\SomeFile.txt&amp;quot;))&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Waiting 5 seconds before terminating notepad.exe.&amp;quot;);&lt;br /&gt;
            Thread.Sleep(5000);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Terminating Notepad with CloseMainWindow.&amp;quot;);&lt;br /&gt;
            if (!process.CloseMainWindow())&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(&amp;quot;CloseMainWindow returned false - &amp;quot; + &amp;quot; terminating Notepad with Kill.&amp;quot;);&lt;br /&gt;
                process.Kill();&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                if (!process.WaitForExit(2000))&lt;br /&gt;
                {&lt;br /&gt;
                    Console.WriteLine(&amp;quot;CloseMainWindow failed to&amp;quot; + &amp;quot; terminate - terminating Notepad with Kill.&amp;quot;);&lt;br /&gt;
                    process.Kill();&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detecting Process Completion==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
public class DetectingProcessCompletion&lt;br /&gt;
{&lt;br /&gt;
    static void ProcessDone(object sender, EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
        Console.WriteLine(&amp;quot;Process Exited&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static void Main()&lt;br /&gt;
    {&lt;br /&gt;
        Process p = new Process();&lt;br /&gt;
        p.StartInfo.FileName = &amp;quot;notepad.exe&amp;quot;;&lt;br /&gt;
        p.StartInfo.Arguments = &amp;quot;process3.cs&amp;quot;;&lt;br /&gt;
        p.EnableRaisingEvents = true;&lt;br /&gt;
        p.Exited += new EventHandler(ProcessDone);&lt;br /&gt;
        p.Start();&lt;br /&gt;
        p.WaitForExit();&lt;br /&gt;
        Console.WriteLine(&amp;quot;Back from WaitForExit()&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Enum Modules For Pid==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
class MainClass {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        int pID = 12345;&lt;br /&gt;
        Process theProc;&lt;br /&gt;
        try { theProc = Process.GetProcessById(pID); } catch {&lt;br /&gt;
            Console.WriteLine(&amp;quot;bad PID!&amp;quot;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        Console.WriteLine(&amp;quot;Here are the loaded modules for: {0}&amp;quot;, theProc.ProcessName);&lt;br /&gt;
        try {&lt;br /&gt;
            ProcessModuleCollection theMods = theProc.Modules;&lt;br /&gt;
            foreach (ProcessModule pm in theMods) {&lt;br /&gt;
                Console.WriteLine(string.Format(&amp;quot;-&amp;gt; Mod Name: {0}&amp;quot;, pm.ModuleName));&lt;br /&gt;
            }&lt;br /&gt;
        } catch { Console.WriteLine(&amp;quot;No mods!&amp;quot;); }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Get current Process Name==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
class AssemType&lt;br /&gt;
{&lt;br /&gt;
  public static void Main(string[] args)&lt;br /&gt;
  {&lt;br /&gt;
    Process p = Process.GetCurrentProcess();&lt;br /&gt;
    string assemblyName = p.ProcessName + &amp;quot;.exe&amp;quot;;&lt;br /&gt;
    Console.WriteLine(&amp;quot;Examining : {0}&amp;quot;, assemblyName);&lt;br /&gt;
    Assembly a = Assembly.LoadFrom(assemblyName);&lt;br /&gt;
    Type[] types = a.GetTypes();&lt;br /&gt;
    foreach(Type t in types)&lt;br /&gt;
    {&lt;br /&gt;
      Console.WriteLine(&amp;quot;\nType : {0}&amp;quot;,t.FullName);&lt;br /&gt;
      Console.WriteLine(&amp;quot;\tBase class : {0}&amp;quot;,t.BaseType.FullName);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Get Process property==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
public class GetProc&lt;br /&gt;
{&lt;br /&gt;
   public static void Main()&lt;br /&gt;
   {&lt;br /&gt;
      Process thisProc = Process.GetCurrentProcess();&lt;br /&gt;
      string procName = thisProc.ProcessName;&lt;br /&gt;
      DateTime started = thisProc.StartTime;&lt;br /&gt;
      int procID = thisProc.Id;&lt;br /&gt;
      int memory = thisProc.VirtualMemorySize;&lt;br /&gt;
      int priMemory = thisProc.PrivateMemorySize;&lt;br /&gt;
      int physMemory = thisProc.WorkingSet;&lt;br /&gt;
      int priority = thisProc.BasePriority;&lt;br /&gt;
      ProcessPriorityClass priClass = thisProc.PriorityClass;&lt;br /&gt;
      TimeSpan cpuTime = thisProc.TotalProcessorTime;&lt;br /&gt;
&lt;br /&gt;
      Console.WriteLine(&amp;quot;Process: {0}, ID: {1}&amp;quot;, procName, procID);&lt;br /&gt;
      Console.WriteLine(&amp;quot;    started: {0}&amp;quot;, started.ToString());&lt;br /&gt;
      Console.WriteLine(&amp;quot;    CPU time: {0}&amp;quot;, cpuTime.ToString());&lt;br /&gt;
      Console.WriteLine(&amp;quot;    priority class: {0}  priority: {1}&amp;quot;, priClass, priority);&lt;br /&gt;
      Console.WriteLine(&amp;quot;    virtual memory: {0}&amp;quot;, memory);&lt;br /&gt;
      Console.WriteLine(&amp;quot;    private memory: {0}&amp;quot;, priMemory);&lt;br /&gt;
      Console.WriteLine(&amp;quot;    physical memory: {0}&amp;quot;, physMemory);&lt;br /&gt;
      Console.WriteLine(&amp;quot;\n    trying to change priority...&amp;quot;);&lt;br /&gt;
      thisProc.PriorityClass = ProcessPriorityClass.High;&lt;br /&gt;
      priClass = thisProc.PriorityClass;&lt;br /&gt;
      Console.WriteLine(&amp;quot;    new priority class: {0}&amp;quot;, priClass);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Get Threads==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
public class GetThreads {&lt;br /&gt;
   public static void Main()&lt;br /&gt;
   {&lt;br /&gt;
      Process thisProc = Process.GetCurrentProcess();&lt;br /&gt;
      ProcessThreadCollection myThreads = thisProc.Threads;&lt;br /&gt;
      foreach(ProcessThread pt in myThreads)&lt;br /&gt;
      {&lt;br /&gt;
         DateTime startTime = pt.StartTime;&lt;br /&gt;
         TimeSpan cpuTime = pt.TotalProcessorTime;&lt;br /&gt;
         int priority = pt.BasePriority;&lt;br /&gt;
         ThreadState ts = pt.ThreadState;&lt;br /&gt;
         Console.WriteLine(&amp;quot;thread:  {0}&amp;quot;, pt.Id);&lt;br /&gt;
         Console.WriteLine(&amp;quot;    started: {0}&amp;quot;, startTime.ToString());&lt;br /&gt;
         Console.WriteLine(&amp;quot;    CPU time: {0}&amp;quot;, cpuTime);&lt;br /&gt;
         Console.WriteLine(&amp;quot;    priority: {0}&amp;quot;, priority);&lt;br /&gt;
         Console.WriteLine(&amp;quot;    thread state: {0}&amp;quot;, ts.ToString()); &lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Input Output:Starting Processes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
public class StartingProcesses&lt;br /&gt;
{&lt;br /&gt;
    public static void Main()&lt;br /&gt;
    {&lt;br /&gt;
        ProcessStartInfo startInfo = new ProcessStartInfo();&lt;br /&gt;
        startInfo.FileName = &amp;quot;notepad.exe&amp;quot;;&lt;br /&gt;
        startInfo.Arguments = &amp;quot;process.cs&amp;quot;;&lt;br /&gt;
        &lt;br /&gt;
        Process.Start(startInfo);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Listing all threads for a process inn a ListView==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
using System;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.ruponentModel;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
public class Form1 : System.Windows.Forms.Form {&lt;br /&gt;
    private System.Windows.Forms.ColumnHeader VirtualMemory;&lt;br /&gt;
    private System.Windows.Forms.ColumnHeader Priority;&lt;br /&gt;
    private System.Windows.Forms.ColumnHeader Id;&lt;br /&gt;
    private System.Windows.Forms.Label machinename;&lt;br /&gt;
    private System.Windows.Forms.Button button1;&lt;br /&gt;
    private System.Windows.Forms.Label label3;&lt;br /&gt;
    private System.Windows.Forms.ListBox listBox1;&lt;br /&gt;
    private System.Windows.Forms.Label label2;&lt;br /&gt;
    private System.Windows.Forms.Label label1;&lt;br /&gt;
    private System.Windows.Forms.ListView listView1;&lt;br /&gt;
    private System.Windows.Forms.ColumnHeader ThreadID;&lt;br /&gt;
    private System.Windows.Forms.ColumnHeader ThreadPriority;&lt;br /&gt;
    private System.Windows.Forms.ColumnHeader ProcessorTime;&lt;br /&gt;
    private ArrayList sProcIds;&lt;br /&gt;
    public Form1() {&lt;br /&gt;
        this.label1 = new System.Windows.Forms.Label();&lt;br /&gt;
        this.label2 = new System.Windows.Forms.Label();&lt;br /&gt;
        this.label3 = new System.Windows.Forms.Label();&lt;br /&gt;
        this.machinename = new System.Windows.Forms.Label();&lt;br /&gt;
        this.ThreadPriority = new System.Windows.Forms.ColumnHeader();&lt;br /&gt;
        this.ThreadID = new System.Windows.Forms.ColumnHeader();&lt;br /&gt;
        this.VirtualMemory = new System.Windows.Forms.ColumnHeader();&lt;br /&gt;
        this.listBox1 = new System.Windows.Forms.ListBox();&lt;br /&gt;
        this.listView1 = new System.Windows.Forms.ListView();&lt;br /&gt;
        this.ProcessorTime = new System.Windows.Forms.ColumnHeader();&lt;br /&gt;
        this.Priority = new System.Windows.Forms.ColumnHeader();&lt;br /&gt;
        this.Id = new System.Windows.Forms.ColumnHeader();&lt;br /&gt;
        this.button1 = new System.Windows.Forms.Button();&lt;br /&gt;
        this.SuspendLayout();&lt;br /&gt;
        this.label1.Location = new System.Drawing.Point(16, 16);&lt;br /&gt;
        this.label1.Size = new System.Drawing.Size(88, 16);&lt;br /&gt;
        this.label1.Text = &amp;quot;Machine name:&amp;quot;;&lt;br /&gt;
        this.label2.Location = new System.Drawing.Point(16, 48);&lt;br /&gt;
        this.label2.Size = new System.Drawing.Size(100, 16);&lt;br /&gt;
        this.label2.Text = &amp;quot;Running Processes:&amp;quot;;&lt;br /&gt;
        this.label3.Location = new System.Drawing.Point(16, 184);&lt;br /&gt;
        this.label3.Size = new System.Drawing.Size(100, 16);&lt;br /&gt;
        this.label3.Text = &amp;quot;Threads:&amp;quot;;&lt;br /&gt;
        this.machinename.Location = new System.Drawing.Point(128, 16);&lt;br /&gt;
        this.machinename.Size = new System.Drawing.Size(100, 16);&lt;br /&gt;
        this.ThreadPriority.Text = &amp;quot;Priority&amp;quot;;&lt;br /&gt;
        this.ThreadID.Text = &amp;quot;Thread ID&amp;quot;;&lt;br /&gt;
        this.VirtualMemory.Text = &amp;quot;Virtual Mem&amp;quot;;&lt;br /&gt;
        this.listBox1.Location = new System.Drawing.Point(16, 80);&lt;br /&gt;
        this.listBox1.Size = new System.Drawing.Size(408, 95);&lt;br /&gt;
        this.listBox1.SelectedIndexChanged += new&lt;br /&gt;
           System.EventHandler(this.SelectItemHandler);&lt;br /&gt;
        this.listView1.Columns.AddRange(new&lt;br /&gt;
           System.Windows.Forms.ColumnHeader[] {&lt;br /&gt;
          this.ThreadID,&lt;br /&gt;
          this.ThreadPriority,&lt;br /&gt;
          this.ProcessorTime});&lt;br /&gt;
        this.listView1.Location = new System.Drawing.Point(16, 200);&lt;br /&gt;
        this.listView1.Size = new System.Drawing.Size(408, 97);&lt;br /&gt;
        this.ProcessorTime.Text = &amp;quot;Processor Time&amp;quot;;&lt;br /&gt;
        this.ProcessorTime.Width = 90;&lt;br /&gt;
        this.Priority.Text = &amp;quot;Priority&amp;quot;;&lt;br /&gt;
        this.Id.Text = &amp;quot;ID&amp;quot;;&lt;br /&gt;
        this.Id.Width = 20;&lt;br /&gt;
        this.button1.Location = new System.Drawing.Point(352, 312);&lt;br /&gt;
        this.button1.Size = new System.Drawing.Size(64, 24);&lt;br /&gt;
        this.button1.Text = &amp;quot;Close&amp;quot;;&lt;br /&gt;
        this.button1.Click += new&lt;br /&gt;
             System.EventHandler(this.button1_Click);&lt;br /&gt;
        this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);&lt;br /&gt;
        this.ClientSize = new System.Drawing.Size(440, 349);&lt;br /&gt;
        this.Controls.AddRange(new System.Windows.Forms.Control[] {&lt;br /&gt;
                     this.listView1,&lt;br /&gt;
                     this.machinename,&lt;br /&gt;
                     this.button1,&lt;br /&gt;
                     this.label3,&lt;br /&gt;
                     this.listBox1,&lt;br /&gt;
                     this.label2,&lt;br /&gt;
                     this.label1});&lt;br /&gt;
        this.ResumeLayout(false);&lt;br /&gt;
        sProcIds = new ArrayList();&lt;br /&gt;
        machinename.Text = Process.GetCurrentProcess().MachineName;&lt;br /&gt;
        Process[] sProcess = Process.GetProcesses();&lt;br /&gt;
        foreach (Process p in sProcess) {&lt;br /&gt;
            listBox1.Items.Add(p.ProcessName);&lt;br /&gt;
            sProcIds.Add(p.Id);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    protected void SelectItemHandler(object sender, System.EventArgs e) {&lt;br /&gt;
        int idx = this.listBox1.SelectedIndex;&lt;br /&gt;
        Process proc = Process.GetProcessById((int)sProcIds[idx]);&lt;br /&gt;
        ProcessThreadCollection procThreads = proc.Threads;&lt;br /&gt;
        this.listView1.View = System.Windows.Forms.View.Details;&lt;br /&gt;
        this.listView1.Items.Clear();&lt;br /&gt;
        int nRow = 0;&lt;br /&gt;
        foreach (ProcessThread pt in procThreads) {&lt;br /&gt;
            string priority = &amp;quot;Normal&amp;quot;;&lt;br /&gt;
            switch ((int)proc.BasePriority) {&lt;br /&gt;
                case 8:&lt;br /&gt;
                    priority = &amp;quot;Normal&amp;quot;;&lt;br /&gt;
                    break;&lt;br /&gt;
                case 13:&lt;br /&gt;
                    priority = &amp;quot;High&amp;quot;;&lt;br /&gt;
                    break;&lt;br /&gt;
                case 24:&lt;br /&gt;
                    priority = &amp;quot;Real Time&amp;quot;;&lt;br /&gt;
                    break;&lt;br /&gt;
                case 4:&lt;br /&gt;
                default:&lt;br /&gt;
                    priority = &amp;quot;Idle&amp;quot;;&lt;br /&gt;
                    break;&lt;br /&gt;
            }&lt;br /&gt;
            this.listView1.Items.Add(pt.Id.ToString());&lt;br /&gt;
            this.listView1.Items[nRow].SubItems.Add(priority);&lt;br /&gt;
            this.listView1.Items[nRow].SubItems.Add(pt.UserProcessorTime.ToString());&lt;br /&gt;
            nRow++;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    protected void button1_Click(object sender, System.EventArgs e) {&lt;br /&gt;
        Close();&lt;br /&gt;
    }&lt;br /&gt;
    public static void Main(string[] args) {&lt;br /&gt;
        Application.Run(new Form1());&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==List Process==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
public class ListProcs&lt;br /&gt;
{&lt;br /&gt;
   public static void Main()&lt;br /&gt;
   {&lt;br /&gt;
      int totMemory = 0;&lt;br /&gt;
      Console.WriteLine(&amp;quot;Info for all processes:&amp;quot;);&lt;br /&gt;
      Process[] allProcs = Process.GetProcesses();&lt;br /&gt;
      foreach(Process thisProc in allProcs)&lt;br /&gt;
      {&lt;br /&gt;
         string procName = thisProc.ProcessName;&lt;br /&gt;
         DateTime started = thisProc.StartTime;&lt;br /&gt;
         int procID = thisProc.Id;&lt;br /&gt;
         int memory = thisProc.VirtualMemorySize;&lt;br /&gt;
         int priMemory = thisProc.PrivateMemorySize;&lt;br /&gt;
         int physMemory = thisProc.WorkingSet;&lt;br /&gt;
         totMemory += physMemory;&lt;br /&gt;
         int priority = thisProc.BasePriority;&lt;br /&gt;
         TimeSpan cpuTime = thisProc.TotalProcessorTime;&lt;br /&gt;
         Console.WriteLine(&amp;quot;Process: {0}, ID: {1}&amp;quot;, procName, procID);&lt;br /&gt;
         Console.WriteLine(&amp;quot;    started: {0}&amp;quot;, started.ToString());&lt;br /&gt;
         Console.WriteLine(&amp;quot;    CPU time: {0}&amp;quot;, cpuTime.ToString());&lt;br /&gt;
         Console.WriteLine(&amp;quot;    virtual memory: {0}&amp;quot;, memory);&lt;br /&gt;
         Console.WriteLine(&amp;quot;    private memory: {0}&amp;quot;, priMemory);&lt;br /&gt;
         Console.WriteLine(&amp;quot;    physical memory: {0}&amp;quot;, physMemory);&lt;br /&gt;
      }&lt;br /&gt;
      Console.WriteLine(&amp;quot;\nTotal physical memory used: {0}&amp;quot;, totMemory);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==List Threads==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
public class ListThreads&lt;br /&gt;
{&lt;br /&gt;
   public static void Main()&lt;br /&gt;
   {&lt;br /&gt;
      Process[] allProcs = Process.GetProcesses();&lt;br /&gt;
      foreach(Process proc in allProcs)&lt;br /&gt;
      {&lt;br /&gt;
         ProcessThreadCollection myThreads = proc.Threads;&lt;br /&gt;
         Console.WriteLine(&amp;quot;process: {0},  id: {1}&amp;quot;, proc.ProcessName, proc.Id);&lt;br /&gt;
         foreach(ProcessThread pt in myThreads)&lt;br /&gt;
         {&lt;br /&gt;
            DateTime startTime = pt.StartTime;&lt;br /&gt;
            TimeSpan cpuTime = pt.TotalProcessorTime;&lt;br /&gt;
            int priority = pt.BasePriority;&lt;br /&gt;
            ThreadState ts = pt.ThreadState;&lt;br /&gt;
            Console.WriteLine(&amp;quot;  thread:  {0}&amp;quot;, pt.Id);&lt;br /&gt;
            Console.WriteLine(&amp;quot;    started: {0}&amp;quot;, startTime.ToString());&lt;br /&gt;
            Console.WriteLine(&amp;quot;    CPU time: {0}&amp;quot;, cpuTime);&lt;br /&gt;
            Console.WriteLine(&amp;quot;    priority: {0}&amp;quot;, priority);&lt;br /&gt;
            Console.WriteLine(&amp;quot;    thread state: {0}&amp;quot;, ts.ToString()); &lt;br /&gt;
         }&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Redirecting Process Output==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
public class RedirectingProcessOutput&lt;br /&gt;
{&lt;br /&gt;
    public static void Main()&lt;br /&gt;
    {&lt;br /&gt;
        Process p = new Process();&lt;br /&gt;
        p.StartInfo.FileName = &amp;quot;cmd.exe&amp;quot;;&lt;br /&gt;
        p.StartInfo.Arguments = &amp;quot;/c dir *.cs&amp;quot;;&lt;br /&gt;
        p.StartInfo.UseShellExecute = false;&lt;br /&gt;
        p.StartInfo.RedirectStandardOutput = true;&lt;br /&gt;
        p.Start();&lt;br /&gt;
        &lt;br /&gt;
        string output = p.StandardOutput.ReadToEnd();&lt;br /&gt;
        &lt;br /&gt;
        Console.WriteLine(&amp;quot;Output:&amp;quot;);&lt;br /&gt;
        Console.WriteLine(output);    &lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Running another program from your own.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
using System;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.ruponentModel;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
&lt;br /&gt;
public class MainClass {&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        Process.Start(&amp;quot;notepad.exe&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
        Process.Start(&amp;quot;sol.exe&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Start And Kill Process==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
class MyProcessManipulator {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        Process ieProc = Process.Start(&amp;quot;IExplore.exe&amp;quot;, &amp;quot;www.intertechtraining.ru&amp;quot;);&lt;br /&gt;
        Console.Write(&amp;quot;--&amp;gt; Hit a key to kill {0}...&amp;quot;, ieProc.ProcessName);&lt;br /&gt;
        try {&lt;br /&gt;
            ieProc.Kill();&lt;br /&gt;
        } catch { } // In case user already killed it...&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>