Я вижу, вы пишете в HKEY_CLASSES_ROOT
с этим reg файлом в вопросе. Этот куст представляет собой объединенное представление HKEY_LOCAL_MACHINE\Software\Classes
и HKEY_CURRENT_USER\Software\Classes
.
Причина, по которой ваш файл работает только с ранее неассоциированными файлами, заключается в том, что запись в HKEY_CLASSES_ROOT
перенаправляет на соответствующий ключ в HKEY_LOCAL_MACHINE
(куст по умолчанию для системы и настройки для всех пользователей). Однако вы столкнетесь с проблемой, потому что настройки ассоциации файлов в HKEY_CURRENT_USER
(которая содержит настройки для каждого пользователя) переопределяют системные настройки по умолчанию.
Кроме того, если расширение управляется ассоциацией "программы по умолчанию", его информация об ассоциации файлов сохраняется в HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\<.ext>
. Вы можете проверить, имеет ли ваше расширение эту связь, проверив наличие этого ключа.
Вы можете отредактировать ваш .reg для работы с любым файлом, включая ранее связанные файлы, продублировав его для этих ключей как в HKEY_LOCAL_MACHINE
и в HKEY_CURRENT_USER
. Аналогично, вы можете удалить ассоциацию, удалив соответствующие ключи в обоих кустах (включая расположение FileExts
).
Рабочий файл .reg для удаления ассоциации для определенного расширения выглядит следующим образом (который удаляет ассоциации .blerg
):
Windows Registry Editor Version 5.00
; Created with Default Programs Editor
; http://defaultprogramseditor.com/
; Delete Extension
[-HKEY_LOCAL_MACHINE\Software\Classes\.blerg]
[-HKEY_CURRENT_USER\Software\Classes\.blerg]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.blerg]
Однако, если вы предпочитаете не изучать внутреннюю часть реестра и различные тайные аспекты ассоциации файлов Windows, я бы порекомендовал вам использовать редактор программ по умолчанию, чтобы внести эти изменения - вы даже можете экспортировать действие в файл .reg, который, кажется, идеально соответствует вашим потребностям.
В вашем случае это так же просто, как нажать File Type Settings
, а затем Delete an extension
. Выберите расширение и вместо сохранения в реестре нажмите небольшую стрелку на кнопке « Delete Extension
и нажмите « Save to .reg file...
. Это создаст полный и закомментированный файл .reg этого действия, который вы можете сохранить или распространить на другие машины.