2012-01-03 13 views
5

¿Cómo puedo determinar si el mdworker (Spotlight) ha completado su primer escaneo? Básicamente estoy buscando el punto en el que el pequeño "." en el ícono de búsqueda de Spotlight desaparecería y usted podría realizar búsquedas. (Obviamente, el sistema operativo tiene una forma de determinarlo, ya que muestra un punto hasta que esté listo ...) No veo nada desde mdutil y no encuentro nada en las API de Spotlight.Cómo determinar si mdworker (Spotlight) ha completado el primer escaneo

Actualmente estoy forzando mi propio escaneo de forma síncrona usando mdimport, pero esto introduce un largo retraso (de minutos a horas dependiendo de qué tan agresivo estoy acerca de dónde buscar) y duplica el trabajo que mdworker ya está haciendo.

Cualquier solución (programática, con script, documentada o no documentada) es un juego justo aquí.

Respuesta

1

Abrí un DTS para esto con Apple. La respuesta es que no hay una manera admitida de hacerlo a partir de 10.7. El "pequeño punto" que utiliza el icono de búsqueda de foco se controla con una interfaz privada.

Mi objetivo ha sido obtener un inventario de las aplicaciones instaladas.

Mi solución actualmente es recopilar una lista de todas las aplicaciones en/Aplicaciones usando fts y buscando cosas llamadas ".app", y podar sobre la marcha para que no obtenga sub-aplicaciones. (Esto sería más fácil que ver con NSDirectoryEnumeration, pero esta pieza en particular del código está en C++ con Fundación Core. Sería más fácil que ver con CFURLEnumerator, pero tengo que apoyar a 10,4. Así fts está muy bien.)

Escaneo para esta lista es muy rápido. Una vez que conozco el número mínimo de aplicaciones en el cuadro, lo comparo con las salidas system_profiler. Si system_profiler me dice que hay menos aplicaciones de las que sé que están en/Applications, entonces escaneo todos los paquetes por mi cuenta. De lo contrario, utilizo la salida de system_profiler.

Esto no es ideal, pero es una heurística decente, es "en su mayoría" correcta, y evita un subregistro drástico de las aplicaciones.

Cuestiones relacionadas