11
votes

Is there a way to get list of open or visible NSWindow from mac desktop?

3
Here is how to get running window informations in macOS github.com/onmyway133/blog/issues/243onmyway133

3 Answers

24
votes

Note that not all windows are necessarily NSWindows, and that NSWindow only provides an interface to windows in your own address space.

The supported way to access every window is the CGWindow API. Take a look at the Son of Grab sample code to see how it's done.

5
votes

You can use the accessibility API (accessibility must be enabled under System Preferences for it to work) to get information on windows (and other UI elements) from other processes. This question might be just what you're looking for.

2
votes

ALL running applications? No. You can only get the NSWindows of your own app. You may be able to use Universal Access or Core Graphics APIs to get some information about windows of other apps, but not full access.