How to Retrieve Titles and Process IDs of Taskbar Applications in C#

By FoxLearn 2/14/2025 6:59:54 AM   64
In this guide, learn how to obtain a list of all Windows processes with visible windows (i.e., those shown on the taskbar) using C#.

This can be particularly helpful when working with third-party tools that require the title of a specific window, such as screenshot applications.

For example, some screenshot tools may need the title of an open window to capture its content but may not provide an easy way to identify the process ID. If you're working with a C# tool and relying on command-line utilities, you can list all processes that have windows in the taskbar, allowing you to extract the title and capture a screenshot.

// 1. Import System Diagnostics
using System.Diagnostics;

// 2. Get a list of all active processes in Windows
Process[] processList = Process.GetProcesses();

// Iterate through each process
foreach (Process process in processList)
{
    // Check if the process has a window title (indicating it appears in the taskbar)
    if (!String.IsNullOrEmpty(process.MainWindowTitle))
    {
        Console.WriteLine("Process:   {0}", process.ProcessName);
        Console.WriteLine("    ID   : {0}", process.Id);
        Console.WriteLine("    Title: {0} \n", process.MainWindowTitle);
    }
}

Output:

Process:   chrome
    ID   : 11896
    Title: c# - get the titles of all open windows - Stack Overflow - Google Chrome 

Process:   WinStore.App
    ID   : 15348
    Title: Microsoft Store 

Process:   SystemSettings
    ID   : 11020
    Title: Settings 

Process:   ApplicationFrameHost
    ID   : 8848
    Title: Settings 

Process:   Code
    ID   : 7852
    Title: ? Untitled-2 - electron-quick-start - Visual Studio Code 

Process:   WindowsInternal.ComposableShell.Experiences.TextInput.InputApp
    ID   : 13864
    Title: Microsoft Text Input Application 

Process:   devenv
    ID   : 16860
    Title: Sandbox (Running) - Microsoft Visual Studio 

Process:   Sandbox
    ID   : 15524
    Title: Form1 

Process:   NVIDIA Share
    ID   : 13076
    Title: NVIDIA GeForce Overlay 

With this code, you can easily filter and list all the applications currently visible in the taskbar, extracting their titles and process IDs.