这似乎是一项基本任务,但由于某种原因我无法找到解决方案。
如何以编程方式在 Internet Explorer 中安装搜索提供程序?我正在为我的安装程序使用 NSIS。
这似乎是一项基本任务,但由于某种原因我无法找到解决方案。
如何以编程方式在 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。同样,只需检查其他搜索服务所做的事情,因为似乎没有任何官方文档用于此类事情。例如,谷歌只是为他们的服务指定一个 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 文件调用相关函数。