如何提高 CGWindowListCopyWindowInfo 的性能
How to improve CGWindowListCopyWindowInfo performance
CGWindowListCopyWindowInfo
的文档说
Generating the dictionaries for system windows is a relatively expensive operation. As always, you should profile your code and adjust your usage of this function appropriately for your needs.
我的问题是如何"adjust" 使用此功能?对于代码自动化过程,我经常需要检查 window 在文档或模式级别中最前面的内容。也就是说,我调用CGWindowListCopyWindowInfo
,忽略属于其他进程或具有我不关心的级别的windows,并确定第一个剩下的window。
如果有一种方法可以仅询问有关我的进程所拥有的 windows 的信息,那就太好了,但我看不出有什么办法可以做到这一点。或者,如果有一种方法可以在我的 windows 更改时得到通知。当 windows 被隐藏或显示时,我可以观察 Carbon Events,但这当然是一项已弃用的技术。
您可以使用 [NSWindow windowNumbersWithOptions:0]
以 z 顺序获取当前应用程序 windows(在活动 space 上)的 window 编号。
CGWindowListCopyWindowInfo
的文档说
Generating the dictionaries for system windows is a relatively expensive operation. As always, you should profile your code and adjust your usage of this function appropriately for your needs.
我的问题是如何"adjust" 使用此功能?对于代码自动化过程,我经常需要检查 window 在文档或模式级别中最前面的内容。也就是说,我调用CGWindowListCopyWindowInfo
,忽略属于其他进程或具有我不关心的级别的windows,并确定第一个剩下的window。
如果有一种方法可以仅询问有关我的进程所拥有的 windows 的信息,那就太好了,但我看不出有什么办法可以做到这一点。或者,如果有一种方法可以在我的 windows 更改时得到通知。当 windows 被隐藏或显示时,我可以观察 Carbon Events,但这当然是一项已弃用的技术。
您可以使用 [NSWindow windowNumbersWithOptions:0]
以 z 顺序获取当前应用程序 windows(在活动 space 上)的 window 编号。