How to enumerate all windows belonging to a particular process using .NET?

.net, c#, windows

Solution

Use the Win32 API EnumWindows (if you want child windows EnumChildWindows)), or alternatively you can use EnumThreadWindows .

[DllImport("user32.dll", CharSet=CharSet.Auto, SetLastError=true)]
public static extern bool EnumWindows(EnumThreadWindowsCallback callback, IntPtr extraData);

Then check which process each window belongs to by using the Win32 API GetWindowThreadProcessId

[DllImport("user32.dll", CharSet=CharSet.Auto, SetLastError=true)]
public static extern int GetWindowThreadProcessId(HandleRef handle, out int processId);

Problem

How i can find all the windows created by a particular process using c#? UPDATE i need enumerate all the windows belonging to an particular process using the PID (process ID) of the an application.

Original source

Related problems