Вы должны быть осторожны, чтобы проверить, что это все еще правильно, но окно рабочего стола находится ниже Finder (оно рисуется Dock). Передача kCGWindowListOptionOnScreenBelowWindow
CGWindowListOption
на CGWindowListCreateImage
должна дать вам то, что вы хотите (если что-то еще не рисует ниже этого уровня).
В противном случае вам нужно будет использовать CGWindowListCreate
и выполнить итерацию ответа, исключая все, что не нарисовано доком на уровне окна kCGMinimumWindowLevel + 19
.
Это довольно сложно, когда есть несколько экранов, но, надеюсь, этой информации вам достаточно, чтобы сделать то, что вам нужно.