Come faccio a sapere quale app ha attirato la mia attenzione su OS X?


25

La finestra attiva sulla mia macchina a volte perde la messa a fuoco. L'app attiva rimane la stessa - se prima ero su Chrome, adesso sono ancora su Chrome - ma la finestra attiva non è più attiva. Nessuna finestra attiva. Questo è frustrante; è successo mentre scrivevo questa domanda e i miei tasti improvvisamente hanno smesso di registrarsi.

Credo che qualche altra app stia rubando il focus, ma che essa stessa non abbia un'interfaccia utente da visualizzare, quindi la finestra attiva diventa non attiva, ma l'app attiva rimane attiva.

La domanda è: come posso rintracciare l'app offensiva, in modo da poterla eliminare con rabbia? Normalmente in caso di furto della messa a fuoco, il colpevole è ovvio, perché ha la messa a fuoco. In questo caso, sono perplesso.


Puoi provare il Apple > Force Quit...menu per vedere se c'è qualcosa in esecuzione che non dovrebbe essere.
Michael Frank,

1
@MichaelFrank Non mostrerà le applicazioni che non hanno una barra dei menu (ad esempio quelle con LSUIElementimpostato su truein Info.plist). Quelli sono perfettamente capaci di quel comportamento.
Daniel Beck

@DanielBeck Ahh, gotcha. È utile sapere.
Michael Frank,

1
Cordiali saluti, ho sostanzialmente fatto la stessa domanda su Apple SE: esiste un modo per rilevare quale programma sta rubando il focus sul mio Mac?
Kevin Reid,

tell application "System Events" to display alert ((name of first application process whose frontmost is true) as string)purtroppo non considera i processi senza barra dei menu.
Daniel Beck

Risposte:


35

Ecco uno script che ti dirà quale app si sta attivando senza dirtelo. L'ho adattato da una risposta alla domanda di @ KevinReid su Apple SE .

Lascialo in esecuzione in un terminale, attendi che l'app canaglia rubi lo stato attivo e vedi quale app è elencata per ultima. (Per me: Google Drive. Altri hanno segnalato cose Symantec AV.)

#!/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)

Questa sceneggiatura mi dice che il mio colpevole èGoogle Drive [/Applications/Google Drive.app]
MarkHu,

Il colpevole per me è finito per essere Symantec.
Josh Bleecher Snyder,

1
Nel mio caso è SecurityAgent [/System/Library/Frameworks/Security.framework/Versions/A/MachServices/SecurityAgent.bundle]
Ed Randall

L'app offensiva era Microsoft Update Assistant. Apprezzo molto questa risposta, questo problema mi sta facendo impazzire da un po '.
jamesbev

2
Il mio colpevole era JetBrains Toolbox [/ Applications / JetBrains Toolbox.app/Contents/jetbrains-toolbox-cef.app], stava cercando di aggiornarsi e si è arrestato in modo anomalo durante il processo. Grazie mille !! Consumava anche un'enorme quantità di risorse.
Gabriel,

1

Sembrerà sciocco e assurdamente semplice ... Ho avuto lo stesso problema con il mio laptop quando ho usato il trackpad o la tastiera integrata. Due computer portatili separati hanno offerto esperienze simili dopo essere stati esposti a un po 'di umidità (sì, ho rovesciato sulla tastiera).

L'aggiunta di mouse e tastiera periferici lo ha risolto per me.


1
Interessante. Uso un mouse e una tastiera esterni, ma spero che questo aiuti qualcun altro. Grazie.
Josh Bleecher Snyder,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.