如何获取NSRunningApplication的窗口

时间:2012-12-07 09:57:58

标签: cocoa nsapplication nsworkspace nsrunningapplication

我想获取正在运行的应用程序的窗口列表。 我可以从[[NSWorkspace sharedWorkspace] runningApplications]获取正在运行的应用程序列表,但窗口列表仅在NSApplication上可用。 有没有办法从NSRunningApplication转换为NSApplication,或者某种方式更直接地获取窗口列表?

1 个答案:

答案 0 :(得分:8)

您需要查看CoreGraphics调用CGWindowListCopyWindowInfo

你这样称呼它

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

然后遍历窗口信息数组,找到你感兴趣的应用程序中的信息,并用它做你想做的事。