Process.MainWindowTitle Property


Gets the caption of the main window of the process.

 property System::String ^ MainWindowTitle { System::String ^ get(); };
public string MainWindowTitle { get; }
member this.MainWindowTitle : string
Public ReadOnly Property MainWindowTitle As String

Property Value


The main window title of the process.


The MainWindowTitle property is not defined because the process has exited.

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


The following example starts an instance of Notepad and retrieves the caption of the main window of the process.

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
int main()
      // Create an instance of process component.
      Process^ myProcess = gcnew Process;
      // Create an instance of 'myProcessStartInfo'.
      ProcessStartInfo^ myProcessStartInfo = gcnew ProcessStartInfo;
      myProcessStartInfo->FileName = "notepad";
      myProcess->StartInfo = myProcessStartInfo;
      // Start process.
      // Allow the process to finish starting.
      Console::Write( "Main window Title : {0}", myProcess->MainWindowTitle );
   catch ( Exception^ e ) 
      Console::Write( " Message : {0}", e->Message );

using System;
using System.Diagnostics;

class MainWindowTitleClass
    public static void Main()
            // Create an instance of process component.
            using (Process myProcess = new Process())
                // Create an instance of 'myProcessStartInfo'.
                ProcessStartInfo myProcessStartInfo = new ProcessStartInfo();
                myProcessStartInfo.FileName = "notepad";
                myProcess.StartInfo = myProcessStartInfo;
                // Start process.
                // Allow the process to finish starting.
                Console.Write("Main window Title : " + myProcess.MainWindowTitle);

        catch (Exception e)
            Console.Write($" Message : {e.Message}");
Imports System.Diagnostics

Class MainWindowTitleClass
    Public Shared Sub Main()
            ' Create an instance of process component.
            Using myProcess As New Process()
                ' Create an instance of 'myProcessStartInfo'.
                Dim myProcessStartInfo As New ProcessStartInfo()
                myProcessStartInfo.FileName = "notepad"
                myProcess.StartInfo = myProcessStartInfo
                ' Start process.
                ' Allow the process to finish starting.
                Console.Write("Main window Title : " + myProcess.MainWindowTitle)

            End Using
        Catch e As Exception
            Console.Write($" Message : {e.Message}")
        End Try
    End Sub
End Class


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 (so that MainWindowHandle is zero), or if the system can't determine that there's a main window (such as may be the case on some Unix platforms), MainWindowTitle is an empty string ("").

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


The main window is the window that currently has the focus; note that this might not be the primary window for the process. 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.

Applies to