Удалить сопоставление файлов Windows, используя файл .reg

12

Вопрос. Как полностью удалить связь с типом файлов с помощью файла .reg? Я пытался, например, удалить, HKEY_CLASSES_ROOT\myextension_auto_fileно этого явно недостаточно.

Предыстория: в Windows Vista у меня есть файл .reg, который успешно связывает тип файла с другим приложением, которому всегда требуются некоторые переданные параметры (вот почему просто связывание правой кнопкой мыши было недостаточно; см. Файл .reg ). Однако, поскольку файл .reg по какой-то причине работает только с ранее неассоциированными расширениями файлов, я собираюсь добавить в него некоторые команды, чтобы сначала удалить данную ассоциацию типов файлов.

Филипп Ленсен
источник

Ответы:

18

Я вижу, вы пишете 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, который, кажется, идеально соответствует вашим потребностям.

Редактор программ по умолчанию удалить расширение и сохранить как .reg файл

В вашем случае, это так просто , как нажать File Type Settings, затем Delete an extension. Выберите расширение и вместо сохранения в реестре нажмите небольшую стрелку на Delete Extensionкнопке и нажмите Save to .reg file.... Это создаст полный и закомментированный файл .reg этого действия, который вы можете сохранить или распространить на другие машины.

Фактор Мистик
источник
1
Какой потрясающий, хорошо объясненный ответ. Спасибо Фактор Мистик - это работает как шарм!
Филипп Ленссен
1
+1 для редактора программ по умолчанию. Упоминается в нескольких ответах, но нашел его здесь первым. Гораздо проще, и хотя это утилита для установки, она очень сосредоточена на своей работе.
Goodeye
3

Этот вопрос, кажется, имеет много предположений, которые сомнительны.

Во-первых, почему вы хотите использовать файл .reg для удаления ассоциации файлов? Почему бы просто не сделать это из пользовательского интерфейса? Вы делаете это на многих рабочих станциях?

Во-вторых, я не понимаю, почему файл .reg, на который вы ссылаетесь, будет работать только с ранее не связанными расширениями файлов.

В любом случае, чтобы удалить ключ с помощью файла .reg, вы должны поставить дефис перед именем ключа. Чтобы удалить значение, вы устанавливаете его как дефис-знак. Все это прописано здесь .

Чтобы удалить сопоставление файлов, вам необходимо удалить ключ для расширения файла, например,

[-HKEY_CLASSES_ROOT\.dat]

Одно это предотвратит открытие файла, но для полноты вы должны также удалить ключ для имени типа, который был значением по умолчанию под ключом расширения файла. Пример:

[-HKEY_CLASSES_ROOT\dat_auto_file]
itsadok
источник
Спасибо Ицадок. Да, в идеале я пытаюсь сделать это через файл .reg, потому что мне может потребоваться распространить результат (это текстовый редактор на основе Chrome App Shortcut / Ajax, работающий на localhost + на сервере). К вашему сведению, ваше решение, похоже, оставляет некоторые следы ассоциации, но Фактор Мистик решил это.
Филипп Ленссен