Process.Handle Property


Gets the native handle of the associated process.

 property IntPtr Handle { IntPtr get(); };
public IntPtr Handle { get; }
public IntPtr Handle { get; }
member this.Handle : nativeint
member this.Handle : nativeint
Public ReadOnly Property Handle As IntPtr

Property Value



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.



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.

Applies to

See also