我想获取正在运行的应用程序的窗口列表。
我可以从[[NSWorkspace sharedWorkspace] runningApplications]
获取正在运行的应用程序列表,但窗口列表仅在NSApplication
上可用。
有没有办法从NSRunningApplication
转换为NSApplication
,或者某种方式更直接地获取窗口列表?
答案 0 :(得分:8)
您需要查看CoreGraphics调用CGWindowListCopyWindowInfo
。
你这样称呼它
CFArrayRef windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly | kCGWindowListExcludeDesktopElements, kCGNullWindowID);
然后遍历窗口信息数组,找到你感兴趣的应用程序中的信息,并用它做你想做的事。