В Windows 7, если я уже связал программу, скажем Notepad2.exe
, с типом файла, скажем .txt
то перемещение пути к Notepad2.exe
(например, перемещение папки) нарушает связь. У меня проблема в том, что я не вижу способа исправить ассоциацию.
Обычные методы выбора ассоциации типов файлов с помощью щелчка правой кнопкой мыши> свойств или с помощью панели управления не работают. Когда вы открываете окно «Выберите программу, которую хотите использовать, чтобы открыть этот файл», вы можете попробовать найти нужный .exe
, но после указания его на новый путь программа Notepad2.exe
фактически не появится, когда Вы вернетесь в окно «Выберите программу, которую хотите использовать, чтобы открыть этот файл:».
Если вы переименуете Notepad2.exe
в другое, например Notepad2a.exe
вы можете связать его как обычно. Таким образом, очевидно, проблема заключалась в том, что Windows предполагает, что имя .exe
идентифицирует программу. Поскольку он, очевидно, запоминает старый путь к Notepad2.exe
его можно интерпретировать как молчаливую жалобу на то, что он не хочет запоминать два Notepad2.exe
с разными путями.
Используя реестр, я попытался удалить оставшиеся ассоциации с Notepad2.exe
(например, используя этот ответ https://superuser.com/a/49617/223560). Я также скорректировал запись реестра для списка MRU, чтобы удалить упоминание о нем. Но этого было недостаточно, чтобы окна «забыли» об этом. Поскольку это переносимое приложение, нет программы удаления, которая помогла бы Windows забыть об этом.
Есть ли способ исправить этот беспорядок? Изменение имени Notepad2.exe
или создание второй копии / ярлыка с другим именем не является для меня приемлемым решением. Я хочу, чтобы все работало так, как обычно.
Редактировать:
Изучение реестра дает некоторые подсказки. Разделы реестра в OpenWithList
содержат ключи со значениями, такими как Notepad2.exe
--- только имя, а не путь. В реестре под UserChoice
есть ключ Progid
со значением Applications\Notepad2.exe
. Это не похоже на путь, и я не уверен, как Windows решает, какой путь ему соответствует.