2010-10-27 74 views

回答

19

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

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

+0

感谢子的抓住链接,最有帮助。 – 2010-10-28 00:33:01

+0

我为此搜索了2小时! – Hlung 2015-08-15 07:40:37

+0

为什么不是所有的窗户都必须是NSWindows?那么那些cgwindows超级类是什么? 你能给我一个参考吗? – allenlinli 2016-08-04 13:00:14

1

全部正在运行的应用程序?不,你只能得到你自己的应用程序的NSWindows。您可能能够使用通用访问或核心图形API来获取有关其他应用程序的窗口的一些信息,但不能完全访问。

5

您可以使用辅助功能API(必须在系统首选项下启用辅助功能才能使用辅助功能)以获取有关其他进程的窗口(以及其他UI元素)的信息。 This question可能正是你想要的。

相关问题