我最近看到一篇关于 Windows 7 新的联合搜索和搜索连接器的文章。基本上,您为用户提供一个小的 XML 文件(.osdx;一个 OpenSearch XML 文件),然后他们可以使用 Explorer 搜索您拥有的任何内容。这些搜索连接器实际上很容易实现——资源管理器通过查询调用您的 URL,您只需将结果作为 RSS 返回。
伟大的。我目前正在开发一个网络应用程序,这种功能可能是提供给我的用户的一个不错的额外功能。所以我安装了示例 .osdx 并进行了尝试。它的工作原理与宣传的差不多:
(来源:msdn.com)
这很酷,但我希望我的搜索结果可以从“开始”菜单中获得。重点(在我看来)是在应用程序本身尚未打开时轻松、快速且直接地访问我的网络应用程序中的项目。如果我必须打开资源管理器窗口,请单击我的搜索连接器,然后搜索,这与仅打开浏览器并在 Web 应用程序中进行搜索有什么区别?
这是我尝试过的:
- 安装 .osdx 后,连接器保存为
%UserProfile%\Searches\name.searchConnector-ms
. 此文件夹中的其他项目包括 Outlook 的连接器。查看该文件,有一个非常有前途的节点,名为<includeInStartMenuScope>
. 我将此节点添加true
到 Channel 9 连接器,但没有运气。(我什至尝试重新启动。) - 我遇到了一个问了差不多一年的问题。接受的答案将我们引导至 Windows API 代码包,但它仅提供用于使用Windows 搜索的类,而不是实现搜索提供程序。
- 来自 Scott Hanselman 的注册表技巧。但是,这 (a) 仅固定一个链接来运行搜索,而不是包含内联结果,并且 (b) 对我不起作用,因为我(也不能指望我的用户)拥有 Windows 7 Ultimate。
那么,如何为“开始”菜单的即时搜索提供项目?理想情况下,我只想配置要包含的搜索连接器的结果,但我不反对在 C# 中连接一些将安装在客户端计算机上的东西。