Get Application's Window Handles

.net, c#, handle, winapi

Solution

You could do what `Process.MainWindowHandle` appears to do: use P/Invoke to call the `EnumWindows` function, which invokes a callback method for every top-level window in the system.

In your callback, call `GetWindowThreadProcessId`, and compare the window's process id with `Process.Id`; if the process ids match, add the window handle to a list.

Problem

I'm building an app that given another app mainWindowhandle it collects information about the window state. I have no problem collecting information about child windows, but I can not access the other open windows of an application or even the menus. Is there any way of getting all window handles of an application?

Original source

Related problems