Process.MainWindowHandle Property

Updated: December 2009

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

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

public IntPtr MainWindowHandle { get; }

Property Value

Type: System.IntPtr
The system-generated window handle of the main window of the associated process.

ExceptionCondition
InvalidOperationException

The MainWindowHandle is not defined because the process has exited.

NotSupportedException

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.

PlatformNotSupportedException

The platform is Windows 98 or Windows Millennium Edition (Windows Me); set ProcessStartInfo.UseShellExecute to false to access this property on Windows 98 and Windows Me.

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 current main window handle if it has changed.

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, for processes that are not visible in the taskbar. This can be the case for processes that appear as an icon in the notification area.

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.

Windows 98, Windows Millennium Edition Platform Note: This property is not available on this platform if you started the process with ProcessStartInfo.UseShellExecute set to true.

  • LinkDemand 

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

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0

Date

History

Reason

December 2009

Added information about hidden windows.

Customer feedback.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft