Вопрос: Используя .reg файл, как я полностью удаляю ассоциацию типа файла? Я попробовал, например, удаление HKEY_CLASSES_ROOT\myextension_auto_file
но это, достаточно по-видимому.
Фон: На Windows Vista у меня есть .reg файл, который успешно связывает тип файла с другим приложением, для которого всегда нужны некоторые переданные параметры (который является, почему просто соединение щелчка правой кнопкой не было достаточно; см. .reg файл). Однако, поскольку .reg файл по некоторым причинам только работает с ранее несвязанными расширениями файла, я надеюсь добавлять некоторые команды к нему для первого удаления данной ассоциации типа файла.
Я вижу, что Вы пишете в 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
assocations):
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 файл этого действия, которое можно сохранить или распределить другим машинам.
Этот вопрос, кажется, имеет много предположений в нем, которые сомнительны.
Во-первых, почему Вы хотите использовать .reg файл для удаления ассоциации файлов? Почему не только делают это от пользовательского интерфейса? Вы делаете это через многие рабочие станции?
Во-вторых, мне не удается видеть, почему .reg файл, с которым Вы связались, будет только работать с ранее несвязанными расширениями файла.
Так или иначе, для удаления ключа с помощью .reg файла Вы снабжаете префиксом дефис к ключевому имени. Для удаления значения Вы устанавливаете его на знак дефиса. Все это записанное здесь.
Для удаления ассоциации файлов необходимо удалить ключ для расширения файла, например.
[-HKEY_CLASSES_ROOT\.dat]
Это одно препятствовало бы тому, чтобы файл был открыт, но для полноты необходимо также удалить ключ для имени типа, которое было значением по умолчанию под ключом расширения файла. Пример:
[-HKEY_CLASSES_ROOT\dat_auto_file]