Пользовательский источник для Windows 7 Поиск меню Пуск

Недавно я наткнулся на статью о новых федеративных соединителях поиска и поиска в Windows 7. По сути, вы предоставляете пользователям небольшой XML-файл (.osdx; XML-файл OpenSearch), и они могут затем использовать проводник для поиска того, что у вас есть. Эти поисковые соединители на самом деле очень просты в реализации - проводник вызывает ваш URL с запросом, и вы просто возвращаете результаты в виде RSS.

Отлично. В настоящее время я работаю над веб-приложением, в котором подобная функциональность может быть хорошей дополнительной функцией для моих пользователей. Поэтому я установил образец.osdx и опробовал его. Это работает в значительной степени, как рекламируется:

http://blogs.msdn.com/blogfiles/jimoneil/WindowsLiveWriter/7ON7FederatedSearch_14072/image_thumb_15.png

Это круто, но я хочу, чтобы мои результаты поиска были доступны из меню "Пуск". Смысл (на мой взгляд) в том, чтобы сделать элементы моего веб-приложения простыми, быстрыми и доступными напрямую, когда само приложение еще не открыто. Если мне нужно открыть окно проводника, щелкните "Мой коннектор поиска" и затем выполните поиск. В чем отличие от простого открытия браузера и выполнения поиска в веб-приложении?

Вот что я попробовал:

  • После установки.osdx Connector сохраняется как %UserProfile%\Searches\name.searchConnector-ms, Другие элементы в этой папке включают Соединитель Outlook. Глядя на этот файл, есть очень многообещающий узел с именем <includeInStartMenuScope>, Я добавил этот узел со значением true к разъему 9 канала, но не повезло. (Я даже попытался перезагрузить.)
  • Я наткнулся на летний вопрос, который задает примерно то же самое. Принятый ответ направляет нас к пакету кодов Windows API, но он предоставляет только классы для использования поиска Windows, а не для реализации поставщика поиска.
  • Уловка реестра от Скотта Хансельмана. Тем не менее, это (а) закрепляет только ссылку для запуска поиска, а не включает в себя результаты, встроенные, и (б) не работает для меня, так как у меня (и я не могу ожидать, что мои пользователи) будет иметь Windows 7 Ultimate.

Итак, как мне предоставить элементы для мгновенного поиска в меню "Пуск"? В идеале я хотел бы просто настроить результаты поиска в коннекторе поиска, но я не против подключить что-то в C#, которое будет установлено на клиентском компьютере.

1 ответ

Традиционно, способ расширить поиск Windows был через IFilters, которые позволяют Windows понимать новые типы файлов. Такой подход наверняка свяжет вас с результатами кнопки "Пуск".

В этом случае вы имеете дело с федеративным поиском, который заставляет онлайн-контент действовать так, как если бы он присутствовал на компьютере пользователя.

К сожалению, я не могу найти ничего, что решило бы вашу проблему. Следовательно, вам может понадобиться построить кладж из двух частей:

  1. IFilter для ваших результатов поиска (скажем, файл "*.C9").
  2. Файл, оканчивающийся на "C9".

Кстати, если вы выполняете веб-поиск по термину "IFilter" и переходите к первым нескольким результатам поиска, вы можете подумать, что IFilter больше не используются из-за примечания в верхней части страницы.

Если это произойдет, то вы на старом сайте IFilter. Текущий URL-адрес документации MSDN по этой теме находится по адресу http://msdn.microsoft.com/en-us/library/bb266451(v=VS.85).aspx.

Последнее предупреждение:

В Windows 7 и более поздних версиях фильтры, написанные в управляемом коде, явно блокируются. Фильтры ДОЛЖНЫ быть написаны в собственном коде из-за потенциальных проблем с версиями CLR в процессе, в котором работают несколько надстроек.

Другие вопросы по тегам