Установить поисковик [Internet Explorer]
-
20-08-2019 - |
Вопрос
Это кажется основной задачей, но я не могу найти решение по какой-то причине.
Как программно установить поставщик поиска в 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 для вызова соответствующих функций.