Пользовательский источник для Windows 7 Поиск меню Пуск - PullRequest
12 голосов
/ 01 октября 2010

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

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

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

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

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

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

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

1 Ответ

2 голосов
/ 05 октября 2010

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

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

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

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

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

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

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

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

...