我想获取正在运行的应用程序的窗口列表。
我可以从 [[NSWorkspace sharedWorkspace] runningApplications]
获取正在运行的应用程序列表,但窗口列表仅在 NSApplication
上可用。
是否有某种方法可以从 NSRunningApplication
转换为 NSApplication
,或者有某种方法可以更直接地获取窗口列表?
最佳答案
您需要查看 CoreGraphics 调用CGWindowListCopyWindowInfo
。
你这样调用它
CFArrayRef windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly | kCGWindowListExcludeDesktopElements, kCGNullWindowID);
然后迭代窗口信息数组,找到来自您感兴趣的应用程序的窗口信息,并用它执行您想要的操作。
关于cocoa - 如何获取 NSRunningApplication 的窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13760760/