2

В 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 решает, какой путь ему соответствует.

2 ответа2

2

Я, кажется, нашел это:

HKEY_CLASSES_ROOT\Applications\Notepad2.exe\shell\open\command

Отредактируйте этот ключ к новому пути.

0

Я бы исправить это с помощью реестра.

Начнем с определения типа файла

HKEY_CLASSES_ROOT\.txt

Глядя на этот ключ, вы увидите, что он связан с другим ключом

HKEY_CLASSES_ROOT\txtfile

Следуйте немного дальше, и вы увидите ключ, который контролирует, какая программа открывается

HKEY_CLASSES_ROOT\txtfile\shell\open\command

пример

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .