【发布时间】:2010-10-24 20:27:19
【问题描述】:
这似乎是一项基本任务,但由于某种原因我无法找到解决方案。
如何以编程方式在 Internet Explorer 中安装搜索提供程序?我正在为我的安装程序使用 NSIS。
【问题讨论】:
-
既然你接受了我的回答,我想一切都顺利吗?
标签: internet-explorer search-engine nsis opensearch
这似乎是一项基本任务,但由于某种原因我无法找到解决方案。
如何以编程方式在 Internet Explorer 中安装搜索提供程序?我正在为我的安装程序使用 NSIS。
【问题讨论】:
标签: internet-explorer search-engine nsis opensearch
似乎没有任何官方记录的手动安装 Internet Explorer 搜索服务的方法。 official method 似乎正在实施
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,使用 URL 中的 OpenSearch 替换来实现魔术。
注意:由于显然没有这方面的公开文档,因此所有这些都可能在未来发生变化。如果您不使用官方方法(在浏览器中),您最终可能会支持多种不同的安装方法。
祝你好运!
【讨论】:
http://msdn.microsoft.com/en-us/library/cc849066(v=vs.85).aspx 现在似乎是 IE8+ 支持的方法
从http://www.microsoft.com/download/en/details.aspx?id=22015下载IE8 SDK,使用openservice.h和openservice.idl文件调用相关函数。
【讨论】:
openservice.h and openservice.idl?