получить идентификатор CGWindow сфокусированного окна - PullRequest
1 голос
/ 13 июня 2010

Знаете ли вы, как я могу получить идентификатор CGWindow для любого сфокусированного окна (принадлежащего или не принадлежащего текущему приложению)?

Заранее спасибо за помощь:)

С уважением,

1 Ответ

2 голосов
/ 13 июня 2010

Один из способов - использовать CGWindowListCopyWindowInfo, чтобы получить список всех окон следующим образом:

CFArrayRef windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly | kCGWindowListExcludeDesktopElements, kCGNullWindowID);

Изучите этот список, чтобы найти все окна на уровне окна 0 (это обычные окна).

Я вполне уверен, что возвращаемый массив будет в том порядке, в котором окна расположены на экране. Если нет, вы можете отсортировать по ключу "windowOrder". Посмотрите пример кода SonOfGrab, чтобы узнать больше об использовании этого API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...