Process.MainWindowHandle Property

Definition

Gets the window handle of the main window of the associated process.

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

Property Value

IntPtr

nativeint

The system-generated window handle of the main window of the associated process.

Exceptions

The MainWindowHandle is not defined because the process has exited.

You are trying to access the MainWindowHandle 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.

Remarks

The main window is the window opened by the process that currently has the focus (the TopLevel form). You must use the Refresh method to refresh the Process object to get the most up to date main window handle if it has changed. In general, because the window handle is cached, use Refresh beforehand to guarantee that you'll retrieve the current handle.

You can get the MainWindowHandle property only for processes that are running on the local computer. The MainWindowHandle property is a value that uniquely identifies the window that is associated with the process.

A process has a main window associated with it only if the process has a graphical interface. If the associated process does not have a main window, the MainWindowHandle value is zero. The value is also zero for processes that have been hidden, that is, processes that are not visible in the taskbar. This can be the case for processes that appear as icons in the notification area, at the far right of the taskbar.

If you have just started a process and want to use its main window handle, consider using the WaitForInputIdle method to allow the process to finish starting, ensuring that the main window handle has been created. Otherwise, an exception will be thrown.

Applies to

See also