winapi - 如何使用自定义搜索结果启动 Windows 资源管理器
问题描述
我正在编写一个 Windows 应用程序,它收集(可能数百个)文件名,所有这些文件都位于一个特定文件夹(用户可以选择)的子文件夹中。该列表只是文件夹中所有文件的子集。
我不想实现提供各种排序和选择可能性的用户界面,因为 Windows 资源管理器在这方面总是要好得多。
是否有一个 API 允许我从我的应用程序启动 Windows 资源管理器,以便它显示我的文件列表,就好像它是搜索操作的结果一样?
解决方案
Explorer 保存的搜索格式 (.search-ms)记录在 MSDN 上。唯一的缺点是它会在您打开它时执行实际搜索,它不包含找到的文件的路径列表。
如果这是不可接受的,那么您将不得不深入了解IShellFolder
和朋友。
如果托管您自己的窗口是可以接受的,那么IExplorerBrowser
您将获得 99% 的成功。调用IExplorerBrowser::FillFromObject
以使用自定义文件列表填充视图或直接操作视图。示例代码在这里。
如果您必须在资源管理器中显示列表,那么我认为您将不得不硬着头皮实施命名空间扩展。
推荐阅读
- arrays - 基于另一个数组过滤打字稿数组
- elasticsearch - 无法在弹性搜索中编组域实例 [demo.Category : 7]
- sql - Sql Query 问题(从一个表随机添加值到另一个表)
- java - Java 中的 Base64 指南
- merge - NodeGit fileHistoryWalk 不显示合并提交
- python - 如何根据值将python字典拆分为多个字典
- python - 使用 Python.Net 导入具有依赖项的 .NET Standard 2.0 类库
- r - 提取由'rfm'包生成的RFM结果 - R
- docker - kubernetes cifs smb flexvolume 缺少文件
- apache-spark - 每次调用函数都会实例化 Hive UDF 类