objective-c - 是否可以获得正在运行的应用程序窗口的完整列表?

标签 objective-c macos cocoa nsworkspace

我正在尝试获取 macOS 上正在运行的应用程序的列表,以便在全屏应用程序上进行一些具体的窗口操作。

首先,我通过 [NSWorkspace sharedWorkspace].runningApplications 获取所有正在运行的应用程序的列表,然后使用 Accessibility API 获取窗口:

AXUIElementCopyAttributeValues((__bridge AXUIElementRef) app,
                               (__bridge CFStringRef) kAXWindowsAttribute,
                               index,
                               count,
                               &values);

看起来这是正确的方法,但对于具有全屏窗口的应用程序,kAXWindowsAttribute 为空。对于非全屏窗口,它工作得很好。

最佳答案

核心图形服务 API 可以通过 CGWindowListCopyWindowInfo() 函数提供所有窗口的列表。

关于objective-c - 是否可以获得正在运行的应用程序窗口的完整列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47163400/

相关文章:

objective-c - 如何防止自定义 UITableViewCells 在取消选择时闪烁白色?

objective-c - #define 或#if 语句错误

java - Hadoop map 停留在字数统计教程上 - 无法从 SCDynamicStore 加载领域信息

macos - 有没有办法在 OS X 中使用 shell 更改键盘快捷键

AndroidStudio (0.8.9 Mac)新建项目Gradle同步失败

objective-c - 从 NSMutableArray 中的 C-Struct 获取值

iphone - 使用带有 iPhone SDK 3.1 的 Xcode 3.1.4 时从电子邮件导入文件

iphone - 非 ARC 项目中的默认属性声明

cocoa - 主菜单栏中的菜单项以不同的字体大小显示。什么给出了?

cocoa - DDHotKeyCenter 'implicit conversion' 警告