Список и поиск окон в OS X

Я пытаюсь сделать кое-что в OS X, используя углеродный API, но я не могу найти ничего, что ищу, в Google или на веб-сайте разработки Apple.

В идеале я хотел бы найти функцию, которая находит окно в определенном месте на экране. Кажется, есть похожие функции, но одна из них говорит, что находит окна только в текущем процессе, а другая говорит, что она предназначена для определения места назначения кликов мыши.

Предполагая, что нет способа сделать это, как бы я перебирал все окна на экране. Найти информацию о том, как работает оконный менеджер OS X, довольно сложно, потому что у него нет названия, а любой поиск в гугле перебивается ссылками на операционную систему Windows. Есть ли вложенные окна? Что такое список окон? Есть только один? у каждого процесса есть один? Вы можете создать произвольно много из них? Я предварительно предполагаю, что GetWindowList - это то, что я ищу, но примера нет, а документация вся расплывчата "Получает следующее окно" без какого-либо объяснения абстракции или примера кода.

Если бы кто-нибудь мог объяснить, как я могу это сделать, или как оконный менеджер видит вещи, или указать мне где-нибудь, где я мог бы прочитать об этом, это было бы здорово!


person Jeremy Salwen    schedule 27.07.2009    source источник


Ответы (1)


Я думаю, что вы ищете Quartz Window Services, часть фреймворка Core Graphics. Вы, вероятно, захотите начать с функции CGWindowListCreate(), чтобы получить список идентификационных номеров окон на экране, который затем можно использовать для получения дополнительной информации о каждом отдельном окне.

person Brian Webster    schedule 27.07.2009