Mam problem z pewną aplikacją na komputerze Mac kradnącą fokus klawiatury (pasek tytułu bieżącego okna staje się nieaktywny). Jednak w rzeczywistości nie wyświetla własnych okien ani pasków menu i nie reaguje w sposób identyfikowalny na skróty klawiaturowe.
Czy istnieje sposób, aby określić, która aplikacja ma fokus klawiatury, nawet jeśli jest to jedna z tych, które nie mają paska menu ani ikony Docku? Znam jedną wbudowaną funkcję, która prawie to robi; okno dialogowe Force Quit, jeśli zostanie wywołane z klawiatury, otworzy się z wybraną aktywną aplikacją. Wymienia jednak tylko zwykłe aplikacje z ikoną dokowania, więc w tym przypadku nie pomaga.
Zaczęło się to mniej więcej w czasie, gdy uaktualniłem z 10,8 do 10,9; Podejrzewam, że jedna z aplikacji, które już zainstalowałem lub zaktualizowałem wraz z systemem operacyjnym, jest ostatnio źle funkcjonująca.
Jestem otwarty na rozwiązania wymagające niewielkiej ilości programowania (powiedzmy AppleScript), korzystania z narzędzi programistycznych itp .; ale nie takie jak „Odinstaluj rzeczy, dopóki nie zniknie”, ponieważ w tej chwili byłoby to nadmiernie destrukcyjne. Chciałbym ostatecznie zidentyfikować aplikację i zgłosić błąd lub naprawić jego konfigurację.
Moje badania ujawniły tylko kilka wątków z prośbą o to samo w społecznościach wsparcia Apple, które nie zawierały odpowiedzi.
źródło
Odpowiedzi:
Możesz znaleźć aplikację, która kradnie fokus, zapisując następujący kod w
find_focus_stealer.py
pliku i uruchamiając go zapython find_focus_stealer.py
pomocą terminala.Rozpocznij uruchamianie skryptu - co 3 sekundy będzie drukować nazwę aktywnej aplikacji. Pracuj normalnie, poczekaj na wystąpienie problemu i po kilku sekundach zobacz wynik w terminalu. Będziesz miał winowajcę.
W moim przypadku była to aplikacja Symantec Antivirus działająca w tle (SymUIAgent.app).
Podziękowania dla iMichael_ w tym wątku Dyskusje Apple .
źródło
for i in t:
nawhile 1:
no module named appkit
, uruchomeasy_install pip
ipip install pyobjc
. Dla mnie toGoogle Drive
kradło mój celOto niewielka aktualizacja skryptu @ Ace, który działa, dopóki go nie zabijesz i drukuje tylko nazwę aplikacji, gdy się zmieni. Ponownie zapisz ten kod w pliku,
find_focus_stealer.py
a następnie spróbuj go uruchomićpython find_focus_stealer.py
.Byłem w stanie to wykorzystać do wyśledzenia „Dysku Google” jako winowajcy kradnącego ostrość na moim komputerze Mac.
źródło
Oto ulepszona wersja skryptu wymieniona w odpowiedzi @ Ace :
Wydrukuje nazwę aktywnej aplikacji, która ma fokus i wykryje, czy zmieniła się, sprawdzając co sekundę.
Powiązany skrypt: Zidentyfikuj, która aplikacja lub proces kradnie nacisk na OSX w Gist
Stosowanie:
get_active_focus.py
.chmod +x get_active_focus.py
polecenia../get_active_focus.py
.Wydajność:
źródło
Być może sprawdzanie Monitora aktywności w poszukiwaniu aktywnych procesów? Wszystko w stanie App Nap można łatwo wykluczyć, a polowanie może być znacznie krótsze.
źródło