Me pregunto si es posible usar de alguna manera ShellExecute para abrir varios archivos a la vez utilizando el controlador de verbo predeterminado. Por ejemplo, si tengo varios archivos mp3 en una carpeta, puedo seleccionarlos todos, luego hacer clic derecho y seleccionar “Reproducir”. Esto mostrará una instancia de WMP (que es mi reproductor de mp3 predeterminado) y agregará todos los archivos que seleccioné a la lista de reproducción actual.
1) ¿Se logra esto usando algún comportamiento estandarizado de ShellExecute?
2) ¿O esto se hace determinando primero cuál es el progtwig predeterminado y luego suministrando la lista de archivos como argumentos para ese ejecutable?
Mi objective es poder tomar una lista de archivos y abrirlos usando el verbo predeterminado con el progtwig predeterminado (idealmente sin tener que buscar en el registro primero).
Es decir, el equivalente de esto, pero para múltiples archivos:
ShellExecute(NULL, NULL, the_file_to_open, NULL, NULL, SW_SHOWNORMAL);
No, ShellExecute
no puede hacer esto. En cambio, la forma de hacerlo es con IContextMenu
.
Hablando en general:
SHBindToObject
IShellFolder::GetUIObjectOf
IContextMenu::QueryContextMenu
, pasando el indicador CMF_DEFAULTONLY
IContextMenu::InvokeCommand