Поделиться через


Создание соединителя поиска для обработчика протокола

Обозреватель Windows управляет созданием соединителя поиска для обработчика протокола с помощью записей раздела реестра. С помощью реестра как разработчики, так и третьи стороны могут включать новые и устаревшие обработчики протоколов для участия в поиске в Windows 7.

Этот раздел организован следующим образом:

Сведения о поисковых соединителях для обработчиков протоколов в Windows 7

В Windows 7 поиски из меню Пуск или проводника Windows включают только файлы в индексированных расположениях, а также элементы, которые не принадлежат к файловой системе, такие как удаленные хранилища данных или элементы обработчика протокола, имеющие соединитель поиска. Помимо включения элементов обработчика протокола в сферу охвата Запуск меню и поисков оболочки, коннектор поиска дает возможность меню Пуск группировать элементы обработчика протокола вместе в результатах меню Пуск, позволяя пользователю щелкнуть заголовок группы и просмотреть результаты только обработчика протокола. Кроме того, пользователь может перейти к папке "Searches", открыть файл подключения поиска и выполнить поиск, содержащий только элементы из определенного обработчика протокола, связанного с этим коннектором поиска.

Когда пользователь впервые запускает приложение, которое регистрирует обработчик протокола, Проводник Windows создает файл соединителя поиска (.searchConnector-ms) для обработчика протокола в папке Searches пользователя. Приложения с обработчиками протокола могут отключить это поведение или настроить имя и описание соединителя поиска обработчика протокола.

Заметка

Расположение папки поиска пользователя — %userprofile%\Поиск или FOLDERID_SavedSearches. GUID для FOLDERID_SavedSearches — {7d1d3a04-debb-4115-95cf-2f29da2920da}.

 

Обозреватель Windows управляет созданием соединителя поиска для обработчика протокола с помощью записей раздела реестра, описанных в следующих разделах:

Заметка

Нет программных средств для создания соединителя поиска для обработчика протокола. Они должны быть настроены через реестр.

 

Ключи реестра и их возможные значения описаны в следующей таблице. Обработчик протокола может заполнить некоторые или все эти разделы реестра, где <протокол> заменен фактическим именем протокола, например MAPI, file или csc.

Ключ реестра Возможные значения Тип Комментарии
протокол HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<>\Version Не существует (по умолчанию). В противном случае это значение равно 1 или больше. REG_DWORD Это значение используется для обнаружения изменений в регистрации шаблонов расположения для корней поиска, которые уже обработаны. Если не существует, используйте значение 0 в качестве значения по умолчанию. Для альтернативы увеличьте номер версии, чтобы сообщить проводнику Windows, что соединитель поиска должен быть пересоздан, так как установлена более новая версия обработчика протоколов.
протокол HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<>\DoNotCreateSearchConnectors Не существует (по умолчанию). В противном случае задано значение 1. REG_DWORD Если он не существует, создайте файл searchconnector-ms в папке поиска. Если 1, отметьте как обработано и не делайте ничего.
протокол HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<>\Default\Description Локализованная строка, содержащая описание соединителя поиска. REG_SZ Необязательный. Он используется в элементе Description файла .searchconnector-ms.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<протокол>\Default\Name Локализованная строка для имени соединителя поиска. Используется в качестве имени файла .searchconnector-ms. REG_SZ Каждое место должно иметь уникальное имя. При отсутствии этого значения будет использоваться имя отображения, предоставляемое интерфейсом IShellFolder обработчиком протокола.
протокол HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<>\Default\FolderType Идентификатор GUID, определяющий FOLDERTYPEID для применения к данному соединителю поиска. REG_SZ Необязательный. Используется в элементе folderType файла .searchconnector-ms, чтобы указать, какие шаблоны следует использовать для отображения результатов. Например, значение GUID "FOLDERTYPEID_Documents".

 

Отключение создания соединителя поиска обработчика протокола

Если приложение предоставляет элементы с помощью обработчика протокола для использования в самом приложении, и вы не хотите предоставлять элементы через оболочку (в меню запуска и поиска проводника Windows), необходимо отключить создание соединителя поиска для обработчика протокола.

Чтобы отключить создание соединителя поиска, установите для DoNotCreateSearchConnectors значение 0x00000001(1), как показано в следующем примере ключа реестра.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows Search
            PHSearchConnectors
               <protocol>
                  DoNotCreateSearchConnectors

Если для DoNotCreateSearchConnectors задано значение 1, рекомендуется предоставить свойство System.Shell.OmitFromView для каждого элемента, доступного обработчиком протокола, и задайте для этого свойства значение TRUE. Это позволит предотвратить отображение элементов обработчика протокола в меню "Пуск" в группе "Файлы".

Если DoNotCreateSearchConnectors присутствует и установлено в ноль, проводник Windows создаст коннектор для поиска для обработчика протокола, а элементы обработчика протокола будут возвращены в меню "Пуск" и в результатах поиска проводника Windows.

Настройка имени, описания или типа папки для соединителя поиска обработчика протокола

Имя соединителя поиска используется не только для идентификации соединителя поиска в папке Searches, но и в качестве заголовка группы для результатов поиска в меню Start. Поэтому важно указать описательное имя соединителя поиска. Если имя не указано в разделе реестра, по умолчанию в проводнике Windows используется имя, предоставленное интерфейсом IShellFolder для корневого и пустого описания обработчика протокола. Имя по умолчанию можно переопределить с помощью записи раздела реестра без необходимости переименовать интерфейс IShellFolder. Хотя это не так заметно, как название соединителя поиска, вы можете также изменить определение соединителя поиска, предоставив собственное описание.

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

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows Search
            PHSearchConnectors
               <protocol>
                  Default
                     Name
                     Description

Кроме того, для параметра FolderType можно задать один из идентификаторов GUID FOLDERTYPEID. Значение должно быть фактическим ИДЕНТИФИКАТОРом GUID, а не его именем. Например, {94d6dcc-4a68-4175-a374-bd584a510b78} вместо FOLDERTYPEID_Music. GUID для FOLDERTYPEID можно получить в заголовочном файле Shlguid.h в пакете Windows SDK.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows Search
            PHSearchConnectors
               <protocol>
                  Default
                     FolderType = {94d6ddcc-4a68-4175-a374-bd584a510b78}

Использование перенаправления строк реестра

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

Чтобы включить локализуемую строку для значений Имя или Описание, задайте значение, как показано в следующем примере раздела реестра.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows Search
            PHSearchConnectors
               <protocol>
                  Name = @dllname.dll,-resourceID

Локализованная строка принимает следующий формат:

  • @dllname.dll,-resourceID, где:
    • @dllname.dll — это путь к библиотеке DLL, содержащей строковый ресурс.
    • resourceID — это целочисленный идентификатор ресурса строки.

Формат косвенной строки, а также косвенной строки с добавленным модификатором версии, описаны в функции SHLoadIndirectString.

Восстановление поискового подключаемого модуля для удаленного обработчика протоколов

Так как соединители поиска являются файлами на компьютере пользователя, их можно ошибочно удалить. Чтобы восстановить все удаленные соединители поиска для обработчиков протоколов, восстановите библиотеки по умолчанию. Для этого откройте проводник Windows, щелкните правой кнопкой мыши папку библиотек, а затем выберите восстановить библиотеки по умолчанию.

снимок экрана с параметром меню

Дополнительные ресурсы

концептуальные

Основные сведения о обработчиках протоколов

Разработка Обработчиков Протоколов

Уведомление об индексе изменений

добавление значков и контекстных меню

пример кода : расширения оболочки для обработчиков протоколов

установка и регистрация обработчиков протоколов

Обработчики протоколов отладки