Ваша найбільша підказка щодо мети та місця розташування - у "великому типі", тобто назвах відповідних вуликів: HKLM та HKCU
Асоціації файлів встановлюються в обох вуликах і мають дві різні цілі:
Як випливає з назви, записи реєстру HKCU встановлюють файлові асоціації для ТЕКУЩОГО КОРИСТУВАЧА та змінюють відповідні налаштування типу файлу в HKLM.
HKLM встановлює асоціації файлів для МІСЦЕВОГО МАШИНУ, тобто для ВСІХ КОРИСТУВАЧІВ машини (якщо це не перекрито записами HKCU). (Для Win98 HKCR був лише короткочасним псевдонімом HKLM \ Software \ Classes. Вони не були окремими або різними вуликами. Однак це змінилося для Win XP і більше не відповідає дійсності. HKCR тепер віртуальний вулик, який є результатом злиття. клавіші HKLM \ Software \ Класи \, HKCU \ Software \ Класи \ та HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts з інформацією про HKCU, яка має перевагу.)
Ця система з двома кроками полегшує не тільки схеми асоціації файлів «один на один», але і «один на один» та «один на багато». Наприклад, файли .htm, .html та .shtml можуть бути встановлені на ProgID = htmlfile, що, в свою чергу, може визначити один браузер. OTOH, записи можуть містити підрозділи OpenWithList або OpenWithProgID з кількома записами, щоб відкрити файл зі списку декількох браузерів, редакторів чи інших програм.
І HKLM \ Software \ Classes \, і HKCU \ Software \ Classes діють однаково (один просто має перевагу над іншим). У найпростішій формі є ключ реєстру для розширення файлу (наприклад, HKCR.txt), значенням за замовчуванням є відповідний ProgID (наприклад, txtfile). Окрім або замість значення за замовчуванням, можуть бути додаткові імена ProgID, перелічені для підрозділу "OpenWithProgID" (наприклад, txtfile та htmlfile) та / або додаткові імена додатків, що відображаються як підрозділи під "OpenWithList" (наприклад, Notepad ++ .exe, Opera.exe, Firefox.exe).
Кожен ProgID визначений в іншому ключі в HKCR (наприклад, HKCR \ txtfile). Цей ключ містить підрозділи, щоб повідомити Windows, який значок використовувати та як відкрити, надрукувати, printto тощо, пов'язаний файл (наприклад, команда HKCR \ txtfile \ shell \ open \ команда). Аналогічно, кожне ім'я програми визначається як підрозділ під HKCR \ Applications (наприклад, HKEY_CLASSES_ROOT \ Applications \ Firefox.exe \ shell \ open \ command).
Окрім ключа HKCU \ Software \ Classes, асоціації файлів облікових записів користувачів знаходяться у ключі HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts. Ці записи не є лише для Провідника Windows, як було запропоновано, але є додатковим джерелом переопределення асоціацій файлів облікових записів користувачів. Записи створюються засобами асоціації файлів у провіднику (Провідник \ Інструменти \ Параметри папок \ Типи файлів) і містять OpenWithList та / або підрозділ OpenwithProgID для кожного перерахованого розширення файлу.
Для визначення асоціації файлів Windows спочатку розглядає записи HKCU для відповідного розширення файлу. Тільки якщо їх не знайдено, вступають у програму записи HKLM. (Примітка. Я не перевіряв, що має перевагу - HKCU \ Software \ Classes або HKCU \ MIcrosoft \ Windows \ CurrentVersion \ Explorer \ FileExts, але я підозрюю, що це буде ключ FileExts). Крім того, якщо згаданий ProgID або ім'я програми не знайдено в HKCU, записи HKLM шукаються. (Зауважте, що \ Applications \ записи - це лише довільне ім'я, хоча вони, як правило, ідентичні дійсному файлу на файлі exe.)
Отже, щоб визначити асоціацію файлів для конкретного облікового запису користувача, створіть записи у вулику HKCU. Щоб визначити асоціацію для всіх користувачів, створіть записи у вулику HKLM (HKCR) та видаліть усі посилання в вулику HKCU до цього типу файлів. Очевидно, що вам потрібні відповідні права доступу до ключів реєстру.
Я не використовую інструменти assoc і ftype, оскільки я вважаю за краще використовувати RegEdit в інтерактивному або пакетному режимі, але з інших коментарів видно, що вони працюють лише у вулику HKLM і не потрібні для очищення / встановлення ключів HKCU. Знайдіть трохи часу та перегляньте вищезгадані клавіші за допомогою RegEdit, щоб переглянути більше прикладів.