una personalizado personalizada motor hacer google crear como caracteristicas búsqueda busqueda c# wpf startmenu

personalizado - Ficha de búsqueda personalizada en el menú de inicio de Windows búsqueda con C#



crear un motor de busqueda google (2)

Me interesa saber cómo puedo hacer lo mismo que hace la aplicación que aparece a continuación: Start Menu Calculator

Quiero saber cómo puedo crear una pestaña personalizada en la Búsqueda del menú de inicio y luego manejarla con mi aplicación WPF. Solo se debe habilitar hasta que mi aplicación se ejecute (como lo hace la calculadora )

Leí algo sobre el paquete de códigos API de Windows y lo descargué, pero no sé cómo puedo usarlo. Lo busqué pero no encontré nada. (Si sabe cómo podría hacerlo con el paquete de códigos API de Windows, escriba un ejemplo que explique cómo hacerlo en C #)


Al hacer la Calculadora del menú de inicio, inicialmente intenté utilizar la búsqueda federada y el código administrado (.NET), pero no puede integrarse en el menú de inicio, solo la búsqueda de shell (para búsqueda basada en servicio web que le permite devolver resultados personalizados basados ​​en una búsqueda cuerda). El problema es que la búsqueda federada está estructurada de tal manera que todos los datos de búsqueda están preindexados para que la calculadora funcione ¡Hubiera tenido que preindexar todos los cálculos posibles! La razón por la que todo funciona de esta manera es para asegurarse de que hacer clic en el menú de inicio siempre sea rápido y receptivo (no desea una llamada de servicio web cada vez que presione iniciar en el shell).

Terminé contratando a alguien para escribir una aplicación de Windows nativa que coloca un control de IE en el área de búsqueda del menú Inicio y pasa el texto buscado con la fuente. Todas las cosas visuales son simplemente css hechas para parecerse a la representación del menú de inicio y los cálculos manejados en javascript.

Así que sí, un poco de pirateo, pero parece funcionar y no he tenido / oído hablar de ningún problema de bloqueo hasta ahora.


  • El exe principal "Start Menu Calculator.exe" instala un enlace de Windows (usando SetWindowsHookEx ) en explorer.exe. El gancho se implementa como es habitual en SBLib.dll, que luego se inyecta en el espacio de memoria de Windows Explorer.

  • Este enganche busca los manejadores de ventana que pertenecen al cuadro de búsqueda. Vea una discusión sobre esto aquí: ¿Cómo obtengo un "identificador" en el cuadro de texto de búsqueda de Windows? y probablemente sub-clasifique las ventanas del cuadro de búsqueda (si cancela el proceso de "Start Menu Calculator.exe" de forma abrupta, también se bloquea Windows Explorer ... lo que confirma algo)

  • Luego reacciona al presionar las teclas, y supongo que destruye la ventana de resultados. En las jerarquías de Windows, creo que es una ventana denominada "Vista abierta de búsqueda de escritorio", puede acceder a ella con SPY ++ en "Menú de inicio", aparte de las ventanas mencionadas en el foro de msdn anterior.

Por lo tanto, no hay API agradable detrás de esta aplicación agradable. Hacks masivos en su lugar :-)

Sin embargo, creo que es posible cierto nivel de integración, utilizando un comportamiento documentado, con el cuadro de búsqueda. No he cavado más, pero existe la noción de búsqueda federada en Windows ( Búsqueda federada de Windows 7 ). No veo si esto sería capaz de reaccionar instantáneamente a lo que el usuario escribe, aunque ...

Como nota al margen, si también está buscando una manera de ejecutar código javascript desde C #, aquí hay una pregunta sobre SO que lo dice todo: analizar y ejecutar JS by C #