49 votos

Es allí una manera de detectar qué programa se va a robar el foco en mi Mac?

Tengo un problema con alguna aplicación en mi Mac robar el foco del teclado (la actual ventana de la barra de título se convierte en inactivo). Sin embargo, no es en realidad la colocación de las ventanas o la barra de menú de su propia, y que no responde identificable a los atajos de teclado.

Hay una manera para determinar qué aplicación tiene el foco del teclado, incluso si es uno de esos que no tiene barra de menú o icono del Dock? Sé de una función integrada que casi lo hace; la Fuerza de Cierre de diálogo, si se invoca desde el teclado, se abrirá con el enfoque de la aplicación seleccionada. Sin embargo, sólo en las listas de lo normal tiene-un-muelle-icono de aplicaciones, por lo que no ayuda en este caso.

Esto comenzó ocurren todo el tiempo cuando he actualizado a partir de 10.8 10.9; sospecho que una de las aplicaciones que ya tenía instalado o actualizado junto con el sistema operativo, es recién desmanes.

Estoy abierto a soluciones con una pequeña cantidad de programación (o AppleScript, por ejemplo), el uso de herramientas de desarrollo, etc.; pero no como "Desinstalar cosas hasta que se va", porque eso sería excesivamente perjudicial en el momento. Me gustaría identificar definitivamente la solicitud y presentar un informe de error o corrección de su configuración.

Mi investigación sólo ha subido un par de hilos de solicitar el mismo en la página de Soporte de Apple Comunidades que no contienen una respuesta.

45voto

Ace Puntos 181

Usted puede encontrar la aplicación que roba la atención por guardar el código siguiente en un find_focus_stealer.py archivo y ejecutarlo a través de la python find_focus_stealer.py en un terminal.

Empezar a ejecutar el script, se imprimirá el nombre de la aplicación activa, cada 3 segundos. Seguir trabajando como de costumbre, espere a que el problema se produzca, y después de unos segundos de ver la salida en el terminal. Usted tendrá su culpable.

En mi caso se trataba de un Antivirus de Symantec fondo de la aplicación (SymUIAgent.de la aplicación).

#!/usr/bin/python

from AppKit import NSWorkspace
import time
t = range(1,100)
for i in t:
    time.sleep(3)
    activeAppName = NSWorkspace.sharedWorkspace().activeApplication()['NSApplicationName']
    print activeAppName

Los créditos de este hilo.

33voto

Chet Puntos 4122

Aquí está una ligera actualización para @As de la secuencia de comandos, que se ejecuta hasta que la matan y sólo se imprime el nombre de la aplicación cuando se cambia:

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

Yo era capaz de utilizar esto para seguir la pista de "Google Drive", como el enfoque de robo culpable en mi Mac.

0voto

Hani Puntos 437

Tal vez la comprobación de Monitor de Actividad para el activo de los procesos? Nada en la App Nap estado podría ser fácilmente descartado, y podría hacer que el caza mucho más corto.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X