Я не собираюсь предлагать решение в своем ответе, поскольку лучшее, что вы можете сделать без сторонних инструментов, - это, вероятно , ответ PIMP_JUICE_IT (хотя этот ответ просто добавляет новый дополнительный глагол и не имеет ничего общего с Windows "Открыть с помощью" "функциональность и должна быть названа соответственно).
Однако я постараюсь объяснить технические подробности о том, что происходит и почему:
Подменю «Открыть с помощью» реализовано как расширение оболочки IContextMenu и зарегистрировано в HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers
. Когда вы щелкаете правой кнопкой мыши по одному или нескольким элементам в папке оболочки, оболочка просматривает различные клавиши HKEY_CLASSES_ROOT
для создания меню. Записи в ...\shellex\ContextMenuHandlers
являются динамическими и выполняют фактический компьютерный код, который определяет, сколько пунктов меню добавить (если они есть).
Похоже, что Microsoft закодировала расширение «Открыть с помощью», чтобы добавить подменю только при выборе одного файла, с одним исключением; Можно выбрать несколько ярлыков (.lnk), и вы все равно получите подменю (по крайней мере, на моем компьютере с Windows 8). Я выйду на конечности и скажу, что обработка ярлыков - ошибка.
Нет технической причины, по которой меню не могло работать для нескольких файлов, и фактически оно работало просто отлично в Windows XP:
Я предполагаю, что главная причина, по которой они удалили это; что вы делаете, когда пользователь выбирает файлы разных типов? Однако для этого уже есть прецедент; Вы можете выбрать файлы разных типов и нажать Enter, чтобы открыть их все. Когда вы делаете это, оболочка просто использует действие, связанное с элементом, который имеет прямоугольник фокуса.
Для стороннего поставщика программного обеспечения было бы возможно создать аналогичное меню, которое работает для нескольких файлов. Единственное ограничение заключается в том, что элемент «Выбрать другое приложение» / «Выбрать программу по умолчанию» в нижней части меню, вероятно, придется отключить при наличии нескольких файлов, поскольку официальный способ вызова этого диалога поддерживает только один путь к файлу. Чтобы заполнить меню, он просто использовал бы SHAssocEnumHandlers для создания списка приложений, доступных для указанного типа файла.
Это такой крайний случай, когда никто не потратил время на переосмысление расширения «Открыть с помощью» только для поддержки нескольких файлов, хотя технически это было бы возможно сделать ...