Process::Handle Property


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Gets the native handle of the associated process.

Namespace:   System.Diagnostics
Assembly:  System (in System.dll)

property IntPtr Handle {
	IntPtr get();

Property Value

Type: System::IntPtr

The handle that the operating system assigned to the associated process when the process was started. The system uses this handle to keep track of process attributes.

Exception Condition

The process has not been started or has exited. The Handle property cannot be read because there is no process associated with this Process instance.


The Process instance has been attached to a running process but you do not have the necessary permissions to get a handle with full access rights.


You are trying to access the Handle property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer.

An application can obtain a handle to a process that can be used as a parameter to many process-information and control functions. You can use this handle to initialize a WaitHandle or to call native methods with platform invoke.

This process handle is private to an application--in other words, process handles cannot be shared. A process also has a process Id which, unlike the Handle, is unique and, therefore, valid throughout the system.

Only processes started through a call to Start set the Handle property of the corresponding Process instances.


for full trust for the immediate caller. This member cannot be used by partially trusted code.

.NET Framework
Available since 1.1
Return to top