Как я могу сказать, какое приложение украло мой фокус в OS X?

6907
Josh Bleecher Snyder

Активное окно на моей машине иногда теряет фокус. Активное приложение остается прежним - если я был в Chrome раньше, я все еще в Chrome - но активное окно больше не активно. Окно не активно. Это расстраивает; это произошло во время ввода этого вопроса, и мои нажатия клавиш внезапно перестали регистрироваться.

Я считаю, что какое-то другое приложение крадет фокус, но само по себе оно не имеет интерфейса для отображения, поэтому активное окно становится неактивным, но активное приложение остается активным.

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

18
Вы можете попробовать меню «Apple> Force Quit ...», чтобы увидеть, работает ли что-то, чего не должно быть. Michael Frank 10 лет назад 0
@MichaelFrank Это не покажет приложения, у которых нет строки меню (например, те, у которых `LSUIElement` установлен в` true` в `Info.plist`). Те вполне способны на такое поведение. Daniel Beck 10 лет назад 1
@DanielBeck Ааа, понял. Это удобно знать. Michael Frank 10 лет назад 0
К вашему сведению, я задавал в основном этот же вопрос на Apple SE: [Есть ли способ определить, какая программа ворует фокус на моем Mac?] (Http://apple.stackexchange.com/questions/123730/is-there-a- путь к обнаружить, какая-программа-это крадущую фокус-на-мой-макинтош) Kevin Reid 10 лет назад 1
`сообщить приложению" Системные события "для отображения оповещения ((имя первого процесса приложения, передний край которого равен true) в виде строки)` к сожалению, не рассматривает процессы без строки меню. Daniel Beck 10 лет назад 0
Помогает ли поиск в списке приложений, запущенных при входе в систему? * Системные настройки »Пользователи и группы» (Ваше имя пользователя) »Элементы входа * Daniel Beck 10 лет назад 0
@KevinReid спасибо! Грустно не видеть готовых ответов. Josh Bleecher Snyder 10 лет назад 0
@DanielBeck это рабочий ноутбук. На нем есть все, что нужно, многие из них установлены не мной. Боюсь, что проверка вряд ли покажет ответ, который мне нужен. Я посмотрел на элементы входа, но у них всех есть строка меню. Я полагаю, что мог бы написать скрипт для траления через мой жесткий диск, проанализировать `Info.plist` для` LSUIElement`, установленный в `false`, и начать с него ... Josh Bleecher Snyder 10 лет назад 0

2 ответа на вопрос

25
medmunds

Here's a script that will tell you which app is activating without telling you. I adapted it from an answer to @KevinReid's question over on Apple SE.

Leave it running in a terminal, wait for the rogue app to steal focus, and see which app is listed last. (For me: Google Drive. Others have reported Symantec AV stuff.)

#!/usr/bin/python try: from AppKit import NSWorkspace except ImportError: print "Can't import AppKit -- maybe you're running python from brew?" print "Try running with Apple's /usr/bin/python instead." exit(1) from datetime import datetime from time import sleep last_active_name = None while True: active_app = NSWorkspace.sharedWorkspace().activeApplication() if active_app['NSApplicationName'] != last_active_name: last_active_name = active_app['NSApplicationName'] print '%s: %s [%s]' % ( datetime.now().strftime('%Y-%m-%d %H:%M:%S'), active_app['NSApplicationName'], active_app['NSApplicationPath'] ) sleep(1) 
Этот скрипт говорит мне, что мой виновник - Google Drive [/ Applications / Google Drive.app] ` MarkHu 9 лет назад 0
Виновником для меня оказался Symantec. Josh Bleecher Snyder 8 лет назад 0
В моем случае это SecurityAgent [/System/Library/Frameworks/Security.framework/Versions/A/MachServices/SecurityAgent.bundle] Ed Randall 6 лет назад 0
0
Paul E

This will sound silly and absurdly simple... I had the same problem with my laptop when I used the trackpad or built in keyboard. Had two separate laptops give similar experiences after being exposed to a bit of moisture (yes, I spilled on the keyboard).

Adding peripheral mouse and keyboard resolved it for me.

Интересно. Я использую внешнюю мышь и клавиатуру, но, надеюсь, это поможет кому-то еще. Благодарю. Josh Bleecher Snyder 9 лет назад 1