CGWindowListCopyWindowInfo
的文档说
为系统窗口生成字典是一项相对昂贵的操作。与往常一样,您应该分析您的代码并根据您的需要适当调整此功能的使用。
我的问题是如何“调整”我对此功能的使用?对于代码自动化过程,我经常需要检查文档或模态级别中哪个窗口最前面。也就是说,我调用CGWindowListCopyWindowInfo
,忽略属于其他进程的窗口或具有我不关心的级别,并识别剩下的第一个窗口。
如果有办法要求提供有关我的流程所拥有的Windows的信息,比如说那会很好,但我认为没办法这样做。或者,如果有办法在我的窗户更改时收到通知。当窗口被隐藏或显示时,我可以观察碳事件,但当然这是一种弃用的技术。
答案 0 :(得分:2)
您可以使用[NSWindow windowNumbersWithOptions:0]
以z顺序获取当前应用程序窗口(在活动空间上)的窗口编号。