获取焦点窗口的CGWindow id

时间:2010-06-13 13:22:51

标签: macos

你知道如何获得任何焦点窗口(属于或不属于当前应用程序)的CGWindow Id吗?

提前感谢您的帮助:)

此致

1 个答案:

答案 0 :(得分:2)

一种方法是使用CGWindowListCopyWindowInfo获取所有窗口的列表,如下所示:

CFArrayRef windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly | kCGWindowListExcludeDesktopElements, kCGNullWindowID);

检查此列表以查找窗口级别0的所有窗口(这些是正常窗口)。

我很确定返回的数组将按照窗口在屏幕上分层的顺序排列。如果没有,您可以通过“windowOrder”键进行排序。查看SonOfGrab示例代码,了解有关如何使用此API的更多信息。