Файл Windows «Открыть с помощью» не может использовать два приложения с одинаковым именем исполняемого файла

Файл Windows «Открыть с помощью» не может использовать два приложения с одинаковым именем исполняемого файла

Можно выбрать, какое приложение использовать для открытия файла

  1. Щелкните правой кнопкой мыши по файлу.
  2. Открыть с
  3. Выберите программу по умолчанию...
  4. Просматривать

Таким образом, осуществляется переход в каталог (например, C:\dir_new), содержащий требуемое приложение (например, myapp.exe).

Если так случится, что имя выбранного исполняемого файла (будем называть егоВыбрано, в данном случае C:\dir_new\myapp.exe) такой же, как и у другого приложения (назовем егоПервый, например, C:\dir_old\myapp.exe) уже присутствует в отображаемом окне «Открыть с помощью», то вместо добавленияВыбрано( C:\dir_new\myapp.exe) в список, он выбирает уже присутствующийПервый( C:\dir_old\myapp.exe).

Возможно ли вообще (каким-либо образом) сделать так, чтобы два приложения с одинаковым именем файла ( myapp.exe) были доступны для функции «Открыть с помощью» одновременно?

PS: Я использую Windows 7, но сомневаюсь, что в других версиях этого не происходит.


РЕДАКТИРОВАТЬ: Я только что нашел этовопрос. Это похоже, но его цель — избавиться от проблемы, а не иметь возможность иметь два приложения доступными одновременно. В любом случае, принятоеотвечатьВозможно, его можно использовать для настоящих целей. Однако для этого требуются права администратора.

Этотиэтоттакже может иметь значение.

решение1

Я нашел обходной путь: если у вас есть права администратора (и достаточно современная версия Windows, я думаю, Vista и выше), вы можете mklinkсоздать жесткую ссылку (если вы не знакомы с UNIX-подобными системами, то это по сути очень низкоуровневый ярлык) следующим образом:

C:\app1\app.exe <- Current app associated with filetype
C:\app2\app.exe <- Windows can't use this exe

В командной строке Windows выполните:

mklink /H C:\app2\hard_link_to_app.exe C:\app2\app.exe

Затем файл C:\app2\hard_link_to_app.exeпоявляется и может быть использован вместо него C:\app2\app.exeдля целей ассоциаций файлов.

Не знаю, могут ли это вызвать проблемы в некоторых ситуациях, но до сих пор мне это помогало.


Интересно, можно ли установить ярлык для C:\dir_new\myapp.exe с другим именем и запросить открытие с помощью ярлыка.

Приведенное выше предложение из комментариев не работает с обычными сочетаниями клавиш Windows.

решение2

Вот как это можно исправить вручную:

Найдите папку реестра
\HKEY_CLASSES_ROOT\Applications<имя исполняемого файла для обновления>\shell\open\command
и отредактируйте/обновите единственный ключ, существующий в этой папке реестра, указав новый путь к вашему приложению.

Мой сценарий (если у вас есть время прочитать)

У меня возникла та же проблема с VLCPortable.exe, когда я хотел открыть файл .mp4 с новой портативной версией, которую я скачал в своей папке dropbox. Использование действия «открыть с помощью» контекстного меню проводника для связывания расширений mp4 с этой следующей версией не сработало. Старый VLC все еще открывал мой видеофайл. Я обнаружил, что старая портативная версия также была установлена ​​в подпапке C:\Portables, и это была не та же старая версия VLC, которая уже была в моем dropbox. Я использую диспетчер задач, чтобы выяснить это, отображая скрытый столбец «командная строка». Похоже, Windows на самом деле проверяет только имя исполняемого файла, а не путь или букву диска для ассоциации файла.

Так что в моем случае <имя исполняемого файла для обновления> - это "VLCPortable.exe". После исправления мне даже не пришлось заново связывать все расширения видео... Что идеально, потому что расширений видео очень много!

Связанный контент