AFAIK, вы не можете сделать это с помощью официального API.Конечно, это возможно, иначе как бы Apple реализовала Exposé в противном случае? Здесь вы можете найти заголовок , который люди создали путем обратного инжиниринга кода Apple;используйте его на свой страх и риск (будучи частным API, любой из этих вызовов может измениться с любым выпуском от Apple в любое время и без какого-либо уведомления) и не ожидайте, что Apple впустит вас в свой App Store, если вы его используете:-) Как вы можете видеть, вы можете использовать этот API, чтобы получить список всех окон (включая скрытые) всех приложений, и вы даже можете манипулировать ими;хотя то, что вам действительно разрешено делать, может зависеть от привилегий вашего приложения. А вот код , который показывает, как вы можете использовать этот закрытый API для захвата содержимого любого окна, которое вам нравится.Обратите внимание, что код работает по-разному в зависимости от версии ОС, есть способ, как сделать это до 10.5 и как после 10.5, поэтому, если вы ориентируетесь на старые системы, убедитесь, что вы также реализуете оба способа.Заключительные вызовы API, используемые для реального получения изображения, не являются частными, кстати, они находятся в официальных заголовках SDK, только способ, которым вы получаете ссылку на окно, которое не принадлежит вашему текущему процессу, является закрытым.
Обновление : Начиная с 10.5, Apple опубликовала важную функцию для копирования идентификаторов WindowID с сервера окон;так что это уже не приватный API.Тем не менее, уже можно было получить эти WindowID до 10.5, но в то время заголовок не был общедоступным, и все же не все функции, обнаруженные в обращенном инженерном заголовке, были обнародованы.