首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ShellExecute多文件

ShellExecute多文件
EN

Stack Overflow用户
提问于 2014-03-04 20:01:35
回答 1查看 985关注 0票数 2

我想知道是否可以使用ShellExecute同时使用默认谓词处理程序打开多个文件。例如,如果一个文件夹中有多个mp3文件,我可以选择所有这些文件,然后右击并选择"Play“。这将弹出WMP的一个实例(这是我的默认mp3播放器),并将我选择的所有文件添加到当前播放列表中。

( 1)这是否使用一些标准化的ShellExecute行为来完成?

或者这是通过先确定默认程序,然后将文件列表作为参数提供给该可执行文件来完成的吗?

我的目标是能够获取文件列表并使用默认程序使用默认谓词打开它们(理想情况下不必先浏览注册表)。

即相当于这一点,但对于多个文件:

代码语言:javascript
复制
ShellExecute(NULL, NULL, the_file_to_open, NULL, NULL, SW_SHOWNORMAL);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-04 20:07:29

不,ShellExecute不能这么做。相反,方法是使用IContextMenu

广义地说:

  • 使用SHBindToObject绑定到父文件夹
  • 查询与IShellFolder::GetUIObjectOf有关的文件的上下文菜单
  • 使用IContextMenu::QueryContextMenu初始化上下文菜单,传递CMF_DEFAULTONLY标志
  • 使用IContextMenu::InvokeCommand调用默认命令
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22181788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档