У меня проблема с каким-то приложением на моем Mac, которое крадет фокус клавиатуры (строка заголовка текущего окна становится неактивной). Тем не менее, он на самом деле не отображает какие-либо собственные окна или строку меню, и он не реагирует на сочетания клавиш.
Есть ли способ определить, какое приложение имеет фокус клавиатуры, даже если оно не имеет строки меню или иконки Dock? Я знаю одну встроенную функцию, которая почти делает это; диалоговое окно принудительного выхода, если оно вызывается с клавиатуры, откроется с выбранным целевым приложением. Тем не менее, в нем перечислены только обычные приложения has-a-dock-icon, поэтому в этом случае это не поможет.
Это начало происходить примерно в то время, когда я обновился с 10,8 до 10,9; Я подозреваю, что одно из приложений, которые я уже установил или обновил вместе с ОС, только что заработало.
Я открыт для решений, связанных с небольшим объемом программирования (или, скажем, AppleScript), использованием инструментов разработчика и т. Д .; но не такие, как «Удалите вещи, пока они не исчезнут», потому что это было бы чрезмерно разрушительным в данный момент. Я хотел бы окончательно определить приложение и отправить отчет об ошибке или исправить его конфигурацию.
Мое исследование выявило только несколько потоков, запрашивающих то же самое в сообществах поддержки Apple, которые не содержали ответа.
источник
Ответы:
Вы можете найти приложение, которое крадет фокус, сохранив следующий код в
find_focus_stealer.py
файле и запустив его черезpython find_focus_stealer.py
терминал.Запустите скрипт - он будет выводить имя активного приложения каждые 3 секунды. Продолжайте работать как обычно, подождите, пока возникнет проблема, и через несколько секунд просмотрите вывод в терминале. У тебя будет свой виновник.
В моем случае это было фоновое приложение Symantec Antivirus (SymUIAgent.app).
Кредиты для iMichael_ в этой теме обсуждений Apple .
источник
for i in t:
наwhile 1:
no module named appkit
, то бегиeasy_install pip
иpip install pyobjc
. Для меня этоGoogle Drive
Вот небольшое обновление скрипта @ Ace, который запускается до тех пор, пока вы его не убьете, и выводит имя приложения только при его изменении. Снова сохраните этот код в файле
find_focus_stealer.py
и попробуйте запустить его сpython find_focus_stealer.py
.Я смог использовать это, чтобы отследить «Google Drive» как виновника кражи фокуса на моем Mac.
источник
Вот улучшенная версия скрипта, упомянутая в ответе @ Ace :
Он напечатает имя активного приложения, которое имеет фокус, и обнаружит, изменилось ли оно, проверяя каждую секунду.
Связанный сценарий: Определить , какие приложения или процесс крадет фокус на OSX на Gist
Использование:
get_active_focus.py
.chmod +x get_active_focus.py
команды../get_active_focus.py
.Выход:
источник
Возможно, проверка Activity Monitor для активных процессов? Все в состоянии App Nap может быть легко исключено, и это может сделать охоту намного короче.
источник