Установить поисковик [Internet Explorer] - PullRequest
1 голос
/ 08 мая 2009

Это кажется основной задачей, но я не могу найти решение по какой-то причине.

Как программно установить поставщик поиска в Internet Explorer? Я использую NSIS для моего установщика.

Ответы [ 2 ]

3 голосов
/ 08 мая 2009

Официально документированного способа поиска службы поиска в Internet Explorer не существует. Официальный метод , по-видимому, предназначен для реализации

window.external.AddSearchProvider("URL")

, который при просмотре в IE 7+ предложит пользователю установить службу поиска.

Однако, немного повозившись, кажется, что IE 8, по крайней мере, устанавливает службы поиска в следующем месте (используя переменные NSIS):

%LOCALAPPDATA%\Microsoft\Internet Explorer\Services\

Проверьте эту папку (после установки хотя бы одной службы поиска), чтобы увидеть структуру. Похоже, вам просто нужен .ico и (возможно) файл OpenSearch .xml. Вам также понадобятся некоторые настройки реестра (описаны ниже).

Однако для простых поисков (без самовнушения) похоже, что вы можете просто обойтись, просто настроив службу поиска в реестре. Расположение параметров поиска в реестре:

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchScopes\{guid}

где {guid} - GUID, идентифицирующий службу поиска. Опять же, просто изучите, что сделали другие поисковые службы, поскольку официальной документации для такого рода вещей не существует. Google, например, просто указывает URL-адрес своей службы, используя замены OpenSearch в URL-адресе, чтобы достичь цели.

ПРИМЕЧАНИЕ: поскольку, по-видимому, нет общедоступной документации по этому вопросу, вероятно, все это может измениться в будущем. Если вы не используете официальный метод (в браузере), вы можете в конечном итоге поддерживать несколько различных методов установки.

Удачи!

0 голосов
/ 24 августа 2011

http://msdn.microsoft.com/en-us/library/cc849066(v=vs.85).aspx теперь представляется поддерживаемым методом для IE8 +

Загрузите IE8 SDK из http://www.microsoft.com/download/en/details.aspx?id=22015 и используйте файлы openservice.h и openservice.idl для вызова соответствующих функций.

...