壳执行多个文件
ShellExecute multiple files
我想知道是否可以以某种方式使用 ShellExecute 使用默认谓词处理程序一次打开多个文件。例如,如果我在一个文件夹中有多个mp3文件,则可以选择所有文件,然后右键单击并选择"播放"。这将打开WMP的一个实例(这是我的默认mp3播放器),并将我选择的所有文件添加到当前播放列表中。
1)这是使用一些标准化的ShellExecute行为完成的吗?
2)还是通过首先确定默认程序是什么,然后将文件列表作为参数提供给该可执行文件来完成的?
我的目标是能够获取文件列表并使用默认动词和默认程序打开它们(理想情况下不必先挖掘注册表)。
即等效于此,但对于多个文件:
ShellExecute(NULL, NULL, the_file_to_open, NULL, NULL, SW_SHOWNORMAL);
不,ShellExecute
不能这样做。相反,做到这一点的方法是 IContextMenu
.
从广义上讲:
- 使用
SHBindToObject
绑定到父文件夹 - 使用
IShellFolder::GetUIObjectOf
查询相关文件的上下文菜单 - 使用
IContextMenu::QueryContextMenu
初始化上下文菜单,传递CMF_DEFAULTONLY
标志 - 使用
IContextMenu::InvokeCommand
调用默认命令
相关文章:
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- CMake:如何将库 A 链接到库 B,然后将可执行文件链接到库 A
- 如何使字符串出现在编译的二进制可执行文件的开头?
- 程序在使用 system() 启动另一个可执行文件时停止
- 用"=default"声明的函数应该只在头文件中执行
- 如何更改使用 CPack 安装的可执行文件的名称?
- 如何使jse文件执行编码.exe并静默添加启动?Javascript将文件添加到启动?
- 从 Qt(release) 生成的文件执行.EXE文件时出错
- 可以从文件执行机器代码吗?
- C ++ tiny-js 从外部文件执行 JavaScript 函数
- 如何标识其功能当前正由可执行文件执行的共享库
- 使用循环从加载的 TXT 文件执行计算时出现问题C++
- 从编译的可执行文件执行函数
- 如何使用c++对CSV文件执行逐行操作(一些x)
- 计算使用文件执行程序的次数
- ZScript文件执行到DLL
- ROS节点无法通过启动文件执行工作
- 在 VC++ 2010 中使用 MSBuild 对文件执行自定义预处理
- C++从文本文件执行代码