如何从所有正在运行的应用程序中获取所有打开的NSWindow的列表?

时间:2010-10-27 18:26:06

标签: cocoa nswindow

有没有办法从mac桌面获取开放或可见的NSWindow列表?

3 个答案:

答案 0 :(得分:23)

请注意,并非所有窗口都必须NSWindows,并且NSWindow仅为您自己的地址空间中的窗口提供接口。

访问每个窗口的支持方式是CGWindow API。查看Son of Grab示例代码,了解它是如何完成的。

答案 1 :(得分:5)

您可以使用辅助功能API(必须在“系统偏好设置”下启用辅助功能才能使其工作)从其他进程获取有关Windows(和其他UI元素)的信息。 This question可能正是您所寻找的。

答案 2 :(得分:1)

所有正在运行的应用程序?不可以。您只能获得自己应用的NSWindows。您可以使用Universal Access或Core Graphics API获取有关其他应用程序窗口的一些信息,但不能完全访问。