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

时间:2009-02-16 19:59:42

标签: cocoa macos applescript

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

Cocoa是首选 AppleScript是可以接受的,如果别无选择的话。

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

2 个答案:

答案 0 :(得分:15)

使用HIWindowGetCGWindowID获取WindowRef的CGWindowID。

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

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

答案 1 :(得分:9)

如果有人还在乎,我会根据你在http://github.com/shabble/osx-space-id

获得的答案整理一个小命令行工具。