如何获取Mac OS X的活动桌面的ID?

时间:2013-03-26 16:31:27

标签: cocoa api desktop spaces

有多种桌面可以在Mac OS X中获取活动桌面的ID。我没有为此找到方法或API。

2 个答案:

答案 0 :(得分:0)

使用HIWindowGetCGWindowID获取CGWindowID的{​​{1}}。

将该ID与WindowRef CGWindowListCreateDescriptionFromArray一起使用,以获取有关您窗口的信息。

查看返回的字典并提取(可选)CGWindow.h密钥。

这是您的窗口的空间ID。

来源:How to detect which Space the user is on in Mac OS X Leopard?

答案 1 :(得分:0)

如果你看一下~/Library/Preferences/com.apple.spaces.plist,它似乎包含一个空格列表,它们的窗口由窗口编号组织。每个空间都有一个名称(最初的两个似乎是仪表板和空字符串,我假设它是第一个默认桌面)。如果您可以获得对窗口编号的引用,则可以尝试在此plist结构中找到它以确定它当前所在的空间。这可能对您有用,也可能没有用,具体取决于您尝试对此信息执行的操作。