There is Win32 functions for finding windows on a system:
[DllImport(\"user32.dll\", SetLastError = true)] public static extern IntPtr FindWindow(string lpCl
I'm sure this question has been asked here a million times before. But, you merely need to use EnumWindows to get the top-level windows and then EnumChildWindows for all the children.