【问题标题】:How to detect which Space the user is on in Mac OS X Leopard?如何在 Mac OS X Leopard 中检测用户所在的空间?
【发布时间】:2010-10-07 22:49:06
【问题描述】:

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

Cocoa 更可取,但如果没有其他方法,AppleScript 也可以接受

我见过几个 AppleScript 实现,但他们使用的技术似乎有点太老套了,无法在生产代码中使用(一个依赖于导致错误然后解析错误消息以获取当前空间,另一个被询问空间菜单 GUI)

【问题讨论】:

    标签: cocoa macos applescript


    【解决方案1】:

    使用 HIWindowGetCGWindowID 获取 WindowRef 的 CGWindowID。

    使用该 ID 和 CGWindow.h 中的 CGWindowListCreateDescriptionFromArray 来获取有关您的窗口的信息。

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

    【讨论】:

    • kCGWindowWorkspace 在 10.8 中已弃用并在 10.11 上进行测试我没有看到此键出现在字典中,所以我认为它已被删除。
    【解决方案2】:

    如果有人仍然关心,我已经根据您可以在 http://github.com/shabble/osx-space-id 获得的答案整理了一个小命令行工具

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-13
      • 2011-10-26
      • 1970-01-01
      • 1970-01-01
      • 2011-01-25
      • 2010-10-12
      • 2010-10-15
      相关资源
      最近更新 更多