Pregunta

Me gustaría determinar cómo iniciar / detener / pausar programáticamente el indexador desde Microsoft Search.

Sé que es posible porque lo he visto en programas como este: http://brandontools.com/files/folders/sidebar_gadgets/entry511.aspx

Sin embargo, no puedo encontrar ningún documento en MSDN o en cualquier otro lugar.

Hay una " Búsqueda de Windows " Servicio que puede ser controlado con métodos tradicionales de control de servicio. Sin embargo, al iniciar / detener este servicio también se modifica la disponibilidad de la búsqueda. Quiero controlar solo el indexador.

¿Alguien sabe dónde se pueden encontrar documentos que describan cómo interactuar con el indexador? Mis habilidades de búsqueda me han fallado.

¿Fue útil?

Solución

No hay una manera de deshabilitar simplemente la parte de indexación. Es un servicio de todo o nada. La descripción de los estados del servicio WSearch:

  

" Proporciona indexación de contenido y almacenamiento en caché de propiedades para archivos, correo electrónico y otro contenido (a través de API de extensibilidad). El servicio responde a notificaciones de archivos y correos electrónicos para indexar contenido modificado. Si el servicio se detiene o deshabilita, el Explorador no podrá mostrar vistas de carpeta virtual de los elementos, y la búsqueda en el Explorador se reducirá a la búsqueda lenta elemento por elemento. & Quot;

Sin embargo, es posible que pueda controlarlo a través de las propiedades de la unidad / carpeta ... desde Explorer, puede cambiarlo por una unidad individual (vea las propiedades de una unidad; hay una opción para permitir el servicio de indexación ... . "), o para una carpeta (propiedades de carpeta - > advanced - > " Para búsquedas rápidas, permitir servicio de indexación ... ").

EDIT ... un poco de googlear, y las propiedades anteriores están disponibles, si miras la página de MSDN para System.IO.FileAttributes , hay una propiedad NotContentIndexed con la descripción El archivo no puede ser indexado por el servicio de indexación de contenido del sistema operativo . Supongo que debería poder configurar esto en carpetas individuales. No sé si esto funciona si se establece en el nivel de la unidad (sin una ejecución recursiva a través de la unidad), pero espero que le dé una ventaja en lo que sea que esté tratando de lograr.

Otros consejos

Según la Microsoft no hay una forma oficial de hacerlo.

Algo como esto:

ServiceController service = nuevo ServiceController (" WSearch ");

service.Start ();

o

service.Stop ();

Aquí hay un gran tutorial sobre cómo interactuar mediante programación con Windows Search: artículo en JoyOfCode .

El Windows Search 3. x SDK proporciona una API .NET que funciona contra Windows Search 3 o 4.

Lamentablemente, no expone la pausa / reanudación. Todas las muestras de control de índice que he encontrado usan WMI para detener el servicio de búsqueda. Eso detendrá la indexación, obviamente, pero a costa de que la búsqueda en sí no esté disponible.

Es un hilo viejo, pero lo encontré. Alguien más podría también.

Use un script AutoIT para abrir las Opciones de indexación y haga clic en el botón Pausa en el cuadro de diálogo.

Abre el " Ejecutar " Cuadro de diálogo (Inicio | Ejecutar), escriba (o copie) % SystemRoot% \ system32 \ compmgmt.msc / s y desplegar el último

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top