我想知道是否可以使用ShellExecute同时使用默认谓词处理程序打开多个文件。例如,如果一个文件夹中有多个mp3文件,我可以选择所有这些文件,然后右击并选择"Play“。这将弹出WMP的一个实例(这是我的默认mp3播放器),并将我选择的所有文件添加到当前播放列表中。
( 1)这是否使用一些标准化的ShellExecute行为来完成?
或者这是通过先确定默认程序,然后将文件列表作为参数提供给该可执行文件来完成的吗?
我的目标是能够获取文件列表并使用默认程序使用默认谓词打开它们(理想情况下不必先浏览注册表)。
即相当于这一点,但对于多个文件:
ShellExecute(NULL, NULL, the_file_to_open, NULL, NULL, SW_SHOWNORMAL);发布于 2014-03-04 20:07:29
不,ShellExecute不能这么做。相反,方法是使用IContextMenu。
广义地说:
SHBindToObject绑定到父文件夹IShellFolder::GetUIObjectOf有关的文件的上下文菜单IContextMenu::QueryContextMenu初始化上下文菜单,传递CMF_DEFAULTONLY标志IContextMenu::InvokeCommand调用默认命令https://stackoverflow.com/questions/22181788
复制相似问题