如何在Mac OS X Leopard中检测用户所在的空间?

geo*_*ock 5 macos cocoa applescript

Mac OS X Leopard有一个名为Spaces的虚拟桌面实现.我想以编程方式检测用户当前所在的空间.

可可是最好的,但如果没有别的办法,AppleScript是可以接受的.

我已经看过几个AppleScript实现,但他们使用的技术在生产代码中使用似乎有点过于苛刻(一个依赖于导致错误,然后解析错误消息以获取当前空间,另一个则查询Spaces菜单GUI)

And*_*ant 15

使用HIWindowGetCGWindowID获取WindowRef的CGWindowID.

将该ID与CGWindow.h中的CGWindowListCreateDescriptionFromArray一起使用,以获取有关窗口的信息.

查看返回的字典并提取(可选)kCGWindowWorkspace密钥.这是您窗口的空间ID.


Sha*_*ble 9

如果有人还在乎,我已经根据这里的答案整理了一个命令行工具,你可以在这里获得http://github.com/shabble/osx-space-id