Вопрос

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

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

Это было полезно?

Решение

Официально документированного способа поиска службы поиска в 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-адресе, чтобы достичь цели.

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

Удачи!

Другие советы

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 для вызова соответствующих функций.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top