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