Документация CGWindowListCopyWindowInfo
говоритКак улучшить производительность CGWindowListCopyWindowInfo
Создание словарей для системы окон относительно дорогостоящей операции. Как всегда, вы должны прокомментировать свой код и соответствующим образом настроить использование этой функции для своих нужд.
Мой вопрос: как я могу «настроить» мое использование этой функции? Для процесса автоматизации кода мне часто нужно проверить, какое окно находится впереди среди документов на уровне документа или мода. То есть я вызываю CGWindowListCopyWindowInfo
, игнорируя окна, относящиеся к другим процессам, или уровни, которые мне не нужны, и идентифицируйте первое оставшееся окно.
Если бы был способ запросить информацию о только окнах, принадлежащих моему процессу, скажем, это было бы хорошо, но я не вижу возможности сделать это. Или если бы был способ получить уведомление, когда меняют окна. Я мог наблюдать за событиями Carbon, когда окна скрыты или показаны, но, конечно, это устаревшая технология.
Вы действительно не сказали, что именно вы делаете. Как вы на самом деле используете эту функцию? – uchuugaka
@uchuugaka, я добавил предложение на свой вопрос, отвечает ли это на ваш вопрос? – JWWalker
Сделайте либо '- [NSApplication orderedWindows]', либо '+ [NSWindow windowNumbersWithOptions:]' в сочетании с '- [NSApplication windowWithWindowNumber:]' работает лучше для ваших целей? В первом есть предостережение, что он игнорирует некоторые виды окон. Я не знаю, быстрее или быстрее, чем 'CGWindowListCopyWindowInfo()'. –