This documentation is archived and is not being maintained.

Process.Handle Property

Returns the associated process's native handle.

[Visual Basic]
Public ReadOnly Property Handle As IntPtr
public IntPtr Handle {get;}
public: __property IntPtr get_Handle();
public function get Handle() : 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.


Exception Type Condition
InvalidOperationException The process has not been started. 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.

NotSupportedException You are trying to access the Handle property for a process running on a remote 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.


Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

.NET Framework Security: 

See Also

Process Class | Process Members | System.Diagnostics Namespace | Id | ExitCode | ExitTime | HandleCount | Start | Refresh