是否有辦法在有多個桌面時獲取Mac OS X中活動桌面的ID。我沒有找到一種方法或API。如何獲取Mac OS X活動桌面的ID?
回答
使用HIWindowGetCGWindowID
爲您的WindowRef
獲取CGWindowID
。
使用該ID與CGWindowListCreateDescriptionFromArray
從CGWindow.h
獲得有關您的窗口的信息。
查看返回的字典並提取(可選)kCGWindowWorkspace
密鑰。
這是您窗口的空間ID。
來源:How to detect which Space the user is on in Mac OS X Leopard?
謝謝。我試過這個' - (int)spaceNumber CFArrayRef windowsInSpace = CGWindowListCopyWindowInfo(kCGWindowListOptionAll | kCGWindowListOptionOnScreenOnly,kCGNullWindowID); (NSMutableDictionary * thisWindow in(NSArray *)windowsInSpace){ if([thisWindow objectForKey:(id)kCGWindowWorkspace]){0} } } return -1; '但它不起作用。它總是返回-1。也許是因爲在Mac OS X 10.8中不推薦使用「kCGWindowWorkspace」? – user2212391 2013-03-26 17:47:03
@ user2212391:有沒有像過時的警告? – 2013-03-27 00:18:20
是的,有一個警告,但有時不贊成apis仍然工作。但在這種情況下,它似乎不再工作。是否有另一種方式來獲得工作區ID? – user2212391 2013-03-27 10:18:20
如果你把在~/Library/Preferences/com.apple.spaces.plist
似乎包含由它們的窗口號組織空間及其窗口的列表看看。每個空間都有一個名稱(最初的兩個似乎是儀表板和空字符串,我認爲它是第一個默認桌面)。如果你可以得到一個窗口號的引用,你可以嘗試在這個plist結構中找到它,以確定它當前在哪個空間。這可能對你沒有用,這取決於你對這些信息的處理方式。
- 1. 獲取MAC OS X的機器ID
- 2. 在Mac OS X的桌面上繪圖
- 3. 通過mac os x桌面繪圖
- 4. 更改桌面背景mac os x
- 5. 如何從Mac OS X上的用戶名獲取帳戶ID?
- 6. 如何獲取Mac桌面大小
- 7. mac os x連接活動目錄
- 8. 獲取Mac OS X上的eclipse版本
- 9. 適用於Mac OS X的R窗口桌面
- 10. 獲取ANDROID_LINT_COMPLETE_REGIONS在Mac OS X上運行
- 11. Mac os x獲取域名programmaticaly
- 12. Mac OS X - 獲取空格鍵狀態
- 13. 如何通過Python獲取Mac中的桌面分辨率?
- 14. 如何登錄Python程序活動在Mac OS X
- 15. 在Mac OS X中獲取當前活動窗口/文檔的標題
- 16. 我如何在Mac OS X
- 17. 如何在Mac OS X中獲取存儲設備的圖標?
- 18. 在Mac OS X中顯示桌面/隱藏所有窗口
- 19. Mac OS X - 從桌面GUI運行shell腳本
- 20. Mac OS X優勝美地默認桌面混合模式?
- 21. Testflight在Mac OS X桌面應用程序中找不到SDK?
- 22. 在蘋果腳本中淡出桌面壁紙(Mac OS X)
- 23. Mac OS X - 如何製作與Mac OS中的iPhone類似的頁面控件?
- 24. Mac OS X 10.6 ODBC驅動
- 25. OS X - 如何檢測硬盤活動?
- 26. 如何在Mac OS X中獲取Java 32位小牛
- 27. 如何在Mac OS X 64位上獲取默認音量?
- 28. 如何在Mac OS X中獲取字體文件夾路徑?
- 29. 如何使用python在Mac OS X中獲取環境變量?
- 30. 如何獲得在MAC OS X上運行的KeePass 2.X
活動桌面意味着什麼? – 2013-03-26 16:32:35
您是否在談論OS X中的Spaces功能?使用適當的術語通常有助於技術.... – Jay 2013-03-26 17:38:24
是的我正在談論OS X中的空間功能。 – user2212391 2013-03-26 17:48:51