我试图检索Windows中的全局文件search结果,但Windowssearch文档是非常复杂的,我宁愿不处理SQL这样的简单function。 运行search:query=%s
后,是否可以在Windows资源pipe理器中显示search结果search:query=%s
作为IShellFolder
或IShellItem
这样我可以在我的应用程序中处理结果项目?
如果你想要弹出一个额外的窗口,你可以创建一个Internet Explorer窗口,导航到一个search-ms url ,从IWebBrowser2的IServiceProvider实现中查询IShellBrowser服务,然后获得活动的shell视图并枚举视图中的项目 。
如果不需要额外的窗口,可以使用ISearchFolderItemFactory,并使用运算符COP_VALUE_CONTAINS设置PKEY_FileName的条件。 你也可以使用IConditionFactory2 :: CreateCompoundFromArray来创建一个复合条件,用SQL来说,它可能是类似于
其中fileName包含“ABC”或fileAuthor包含“ABC”或fileFullText包含“ABC”或fileTitle包含“ABC”
然后,可以调用ISearchFolderItemFactory :: GetShellItem来获取搜索文件夹对象的IShellItem接口,从中可以使用BHID_EnumItems调用BindToHandler以返回一个shell项目枚举器 。