C# Tutorial
C# String
C# Array
C# Flow Control
C# Class and Object
C# Inheritance
C# Interface
C# Collection
C# Generic
C# File I/O
C# Delegate and Event
C# Exception
C# Process and Thread
C# ADO.NET Database Operations
The Process
class in C# is part of the System.Diagnostics
namespace and provides methods for working with system processes. This tutorial will cover the following topics related to the Process
class:
Let's begin!
First, make sure to include the System.Diagnostics
namespace:
using System.Diagnostics;
The Process.Start
method is used to start a new process, such as launching an external application or opening a file with its associated program.
Example:
// Launch Notepad Process.Start("notepad.exe"); // Open a file with its associated program Process.Start(@"C:\Users\MyUser\Documents\file.txt");
The Process
class provides properties and methods for retrieving information about a running process.
Examples:
Process.Id
: Returns the process ID.Process currentProcess = Process.GetCurrentProcess(); Console.WriteLine($"Process ID: {currentProcess.Id}");
Process.ProcessName
: Returns the process name.Process currentProcess = Process.GetCurrentProcess(); Console.WriteLine($"Process Name: {currentProcess.ProcessName}");
Process.GetProcesses
: Returns an array of Process
instances representing all running processes on the local machine.Process[] processes = Process.GetProcesses(); foreach (Process process in processes) { Console.WriteLine($"Process ID: {process.Id}, Process Name: {process.ProcessName}"); }
The Process.WaitForExit
method blocks the calling thread until the associated process exits. This can be useful if you need to wait for an external application to complete its work before continuing with your code execution.
Example:
Process notepad = Process.Start("notepad.exe"); Console.WriteLine("Notepad started. Waiting for it to exit..."); notepad.WaitForExit(); Console.WriteLine("Notepad exited.");
The Process.Kill
method can be used to forcefully terminate a process.
Example:
Process[] processes = Process.GetProcessesByName("notepad"); foreach (Process process in processes) { Console.WriteLine($"Killing Notepad process with ID: {process.Id}"); process.Kill(); }
In this example, all running instances of Notepad will be terminated.
That's it! You've now learned how to use the Process
class in C# to start new processes, retrieve process information, wait for a process to exit, and kill a process. The Process
class simplifies working with system processes by providing methods for managing and controlling processes programmatically. Make sure to explore the other methods and properties in the Process
class for additional functionality.
How to use Process.Start in C#
Process.Start
is used to start a new process.
Process.Start("notepad.exe");
Working with system processes in C#
Interact with system processes using the Process
class.
Process[] processes = Process.GetProcesses();
C# Process class example
Use the Process
class to start and manage external processes.
Process myProcess = new Process(); myProcess.StartInfo.FileName = "notepad.exe"; myProcess.Start();
Redirecting standard input/output with Process in C#
Redirecting allows communication with the process.
Process process = new Process(); process.StartInfo.RedirectStandardInput = true; process.StartInfo.RedirectStandardOutput = true; process.Start();
Asynchronous process execution in C#
Execute processes asynchronously using async
and await
.
async Task ExecuteAsync() { await Task.Run(() => Process.Start("notepad.exe")); }
Working with process information in C#
Access information about a process using properties of the Process
class.
Process myProcess = Process.Start("notepad.exe"); Console.WriteLine($"Process ID: {myProcess.Id}");
C# Process exit code handling
Retrieve the exit code of a process to determine its completion status.
Process myProcess = Process.Start("notepad.exe"); myProcess.WaitForExit(); int exitCode = myProcess.ExitCode;
Launching elevated processes in C#
Run a process with elevated privileges.
ProcessStartInfo startInfo = new ProcessStartInfo("myExecutable.exe"); startInfo.Verb = "runas"; // Run as administrator Process.Start(startInfo);
Detecting when a process exits in C#
Use WaitForExit
to wait for the process to exit.
Process myProcess = Process.Start("notepad.exe"); myProcess.WaitForExit();
C# ProcessStartInfo for fine-grained control
ProcessStartInfo
provides fine-grained control over the process.
ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = "notepad.exe"; startInfo.Arguments = "example.txt"; Process.Start(startInfo);
Running PowerShell commands from C#
Execute PowerShell commands using Process.Start
.
Process.Start("powershell", "-Command Get-Process");
Interacting with child processes in C#
Launch and interact with child processes using the Process
class.
ProcessStartInfo startInfo = new ProcessStartInfo("child.exe"); Process.Start(startInfo);