Знаете ли вы, как я могу получить идентификатор CGWindow любого фокусного окна (принадлежащего или нет текущему приложению)?получить идентификатор CGWindow сфокусированного окна
Заранее спасибо за помощь :)
С уважением,
Знаете ли вы, как я могу получить идентификатор CGWindow любого фокусного окна (принадлежащего или нет текущему приложению)?получить идентификатор CGWindow сфокусированного окна
Заранее спасибо за помощь :)
С уважением,
Один из способов заключается в использовании CGWindowListCopyWindowInfo
, чтобы получить список всех окон, как это:
CFArrayRef windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly | kCGWindowListExcludeDesktopElements, kCGNullWindowID);
Проверьте этот список, чтобы найти все окна на уровне окна 0 (это обычные окна).
Я уверен, что возвращенный массив будет в порядке, когда окна будут накладываться на экран. Если нет, вы можете сортировать по клавише «windowOrder». Взгляните на пример кода кода SonOfGrab, чтобы узнать, как использовать этот API.
Это оппонент, которого я хотел избежать, если бы была функция, предоставляющая мне это. Спасибо за помощь. –