使用 search-ms: 或 search: 协议将搜索结果作为 IShellItem 进行检索
Using search-ms: or search: protocols to retrieve search results as an IShellItem
我正在尝试在Windows中检索全局文件搜索结果,但是Windows搜索文档非常复杂,我宁愿不处理SQL以获得如此简单的功能。在以IShellFolder
或IShellItem
的形式运行search:query=%s
后,是否可以在 Windows 资源管理器中获取搜索结果,以便我可以在应用程序中处理结果项?
如果要弹出一个额外的窗口,可以创建一个 Internet Explorer 窗口,导航到搜索 ms URL,从 IWebBrowser2 的 IServiceProvider 实现中查询 IShellBrowser 服务,然后获取活动的 shell 视图并枚举视图中的项。
如果不需要额外的窗口,可以使用 ISearchFolderItemFactory 并使用运算符COP_VALUE_CONTAINS设置条件 PKEY_FileName。你也可以使用 IConditionFactory2::CreateCompoundFromArray 来创建 compond 条件,在 SQL 术语中,它可以是这样的
其中文件名包含"ABC"或文件作者包含"ABC"或文件全文包含"ABC"或文件标题包含"ABC"
然后,可以调用 ISearchFolderItemFactory::GetShellItem 来获取搜索文件夹对象的 IShellItem 接口,从中可以使用 BHID_EnumItems 调用 BindToHandler 以返回 shell 项枚举器。
相关文章:
- 使用VerQueryValue检索应用程序的文件描述
- 是否可以从格式字符串中检索"width"
- 使用 pqxx 将 std::vector 存储在 postgresql 中,并从数据库中检索它
- 如何在QByteArray中放置和检索位字段而不会感到痛苦?
- 如何在Qt中从数据库中检索二进制数据?
- 如何从C++代码中检索 QML 的文本字段中的文本?
- 从 opencv c++ 中的矢量中检索固定的帧数
- 如何在不等待检索的情况下获取C++中的内存位置?
- 如何在 QTreeWidget 中检索特定项目的 mimeData?
- C++从字符串中检索几行
- 在数据库中插入和检索矩阵
- 两个垫子的 OpenCV 数据是相同的,但使用 Mat::at 检索时的值已损坏
- 使用 const char* 键映射 C++ 检索空值
- 打印从SQLite3数据库检索的数据C++与命令行中相同的方式
- 如何检索指向在单独线程上运行的函数的移动指针?
- 如何检索 Steamwork SDK 的当前版本
- 通过 host() 从 af::array 检索数据会导致错误的数据
- 无法从类中检索值
- 初始化类中的指针数组,并在另一个类中检索它
- 使用 search-ms: 或 search: 协议将搜索结果作为 IShellItem 进行检索