Видаліть асоціацію файлів 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]

Дякую Іцадок. Так, в ідеалі я розглядаю це за допомогою файлу .reg, тому що, можливо, я хочу розповсюдити результат (це текстовий редактор на основі програм для Chrome / Ajax, який працює на localhost + сервері). FYI ваше рішення, здається, залишає деякі сліди асоціації, але Фактор Містик вирішив це.
Філіп Ленсен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.