gpt4 book ai didi

objective-c - 如何快速获取当前屏幕上所有窗口的列表?

转载 作者:IT王子 更新时间:2023-10-29 05:22:53 24 4
gpt4 key购买 nike

如何在 swift 中获取当前屏幕上所有窗口的列表 ? (所有示例都以 import Cocoa 开头)

objective-c中我可以成功运行下面的代码:

CFArrayRef windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly, kCGNullWindowID);

但是当我在 swift 中运行等效项时(使用 playground 进行测试):

let windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly, kcGNullWindowID)

我收到一条错误消息,告诉我我有一个 Use of unresolved identifier 'kcGNullWindowID'

quartz documentation 的帮助下玩弄之后有一段时间我已经做到了:

let windowList = CGWindowListCopyWindowInfo(CGWindowListOption(kCGWindowListOptionOnScreenOnly), CGWindowListOption(0))

但它仍然无法正常工作,因为我收到了一个我不知道如何访问的 {__NSArrayM} 对象。

我是在正确的轨道上还是在做一些根本性的错误?

最佳答案

这是 Swift 2.0 中的一个示例,它也演示了多个选项。

    let options = CGWindowListOption(arrayLiteral: CGWindowListOption.ExcludeDesktopElements, CGWindowListOption.OptionOnScreenOnly)
let windowListInfo = CGWindowListCopyWindowInfo(options, CGWindowID(0))
let infoList = windowListInfo as NSArray? as? [[String: AnyObject]]

关于objective-c - 如何快速获取当前屏幕上所有窗口的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24094375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com