Cocoa:截取桌面壁纸(没有图标和窗口)

Mar*_*ark 4 cocoa screenshot sandbox

是否可以在没有桌面项目和任何可能打开的窗口(即只是壁纸)的情况下捕获Mac OS X桌面?

我已经尝试了CGWindowListCreateImage,CGWindowListCreateImageFromArrayCGDisplayCreateImage,但没有运气.

基本上我正在尝试捕获桌面壁纸而不使用[NSWorkspace desktopImageURLForScreen:](它是一个无法访问文件系统的沙盒应用程序).

Ton*_*old 5

您需要小心测试这仍然是正确的,但桌面窗口位于Finder下方(由Dock绘制).传递kCGWindowListOptionOnScreenBelowWindow CGWindowListOptionCGWindowListCreateImage你应该得到你想要的东西(除非其他东西低于那个水平).

否则,您将需要使用CGWindowListCreate并迭代响应,排除窗口级别未由Dock绘制的任何内容kCGMinimumWindowLevel + 19.

当有多个屏幕时,它会变得有点棘手,但希望这些信息足以让您完成所需的操作.