一尘不染

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

swift

我怎样才能获得的所有窗口的列表,当前在屏幕上,在 迅速
?(所有示例均以开头import Cocoa

Objective-C中, 我可以成功运行以下代码:

CFArrayRef windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly, kCGNullWindowID);

但是当我 迅速 运行等效项时(使用操场进行测试):

let windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly, kcGNullWindowID)

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

石英文档的帮助下玩了一段时间之后,我开始:

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

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

我是在正确的道路上还是在做根本上错误的事情?


阅读 649

收藏
2020-07-07

共1个答案

一尘不染

这是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]]
2020-07-07