
Можно выбрать, какое приложение использовать для открытия файла
- Щелкните правой кнопкой мыши по файлу.
- Открыть с
- Выберите программу по умолчанию...
- Просматривать
Таким образом, осуществляется переход в каталог (например, 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". После исправления мне даже не пришлось заново связывать все расширения видео... Что идеально, потому что расширений видео очень много!