Где в реестре хранится Windows, с помощью какой программы открываются файлы определенных типов?

После установки Adobe PDF Reader открывает файлы с .PDF расширение файла. Открывается стандартный веб-браузер .html файлы и блокнот открывается .txt файлы и т. д.

Где именно в реестре хранятся эти типы файлов - программные ассоциации в реестре?

Другими словами, как Windows узнает, с каким программным обеспечением / программой она должна открывать определенный файл (тип)?

7 ответов

Решение

Все открытые ассоциации хранятся в HKEY_CLASSES_ROOT,

Это специальный куст реестра, который объединяет ассоциации локальных пользователей в HKEY_CURRENT_USER\Software\Classes с ассоциациями системы в HKEY_LOCAL_MACHINE\Software\Classes,

Вот снимок из моего реестра для ассоциации PDF, которую вы упоминаете в своем вопросе:

Ассоциация файлов PDF в реестре

Просто чтобы расширить ответ Гарета:

От игры с реестром это выглядит

  • записи из HKEY_CURRENT_USER\Software\Classes переопределить записи из HKEY_LOCAL_MACHINE\Software\Classes вHKEY_CLASSES_ROOT\Software\Classes
  • установка ассоциации расширения файла из командной строки с помощью assoc команда действует на HKEY_LOCAL_MACHINE\Software\Classes
  • установка связи типа файла из командной строки с помощью ftype команда действует на HKEY_LOCAL_MACHINE\Software\Classes

В текущих версиях Windows

#1 Сначала вам нужно поискатьHKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\[EXT]\UserChoice\ProgIdесли оно существует. Если нет, перейдите к пункту №5.

#2 ProgId — это класс файла, например (=> переход к #6) или, аналогично, идентификатор приложения, например (=> переход к #3)

#3 Найдите идентификатор приложенияApplications\SciTE.exeнравитьсяHKEY_CLASSES_ROOT\Applications\SciTE.exe\shell\open\command. Значением по умолчанию является команда для запуска.

#4 Готово.

#5 ПоискComputer\HKEY_CLASSES_ROOT\[EXT]значение по умолчанию для класса файла, например

#6 Найдите класс файлаPython.FileнравитьсяHKEY_CLASSES_ROOT\Python.File\shell. Значением по умолчанию является команда по умолчанию, например (по умолчаниюopenесли он не существует).

#7 Найдите этоeditкомандовать какHKEY_CLASSES_ROOT\Python.File\shell\edit\command. Значением по умолчанию является команда для запуска. Примечание. Другие доступные команды для класса файлов отображаются в Проводнике при щелчке правой кнопкой мыши по файлу.

Примечание:HKEY_CLASSES_ROOTприсоединяется кSoftware\ClassesизHKEY_CURRENT_USER(более высокий приоритет) иHKEY_LOCAL_MACHINE

Хотя ответы (вероятно, я не проверял) правильные, разумный способ изменить ассоциации файлов - это графический интерфейс, разработанный Microsoft для него. (То есть, если вы пользователь, а не разработчик установки.)

Вот один урок с красивыми картинками, я нашел его с помощью Google: http://www.digitalcitizen.life/how-associate-file-type-or-protocol-program

Но вы можете просто открыть старт (меню win7 или экран win8, неважно) и набрать ассоциацию файла, ввести, и она должна открыть правильную ссылку панели управления. (Панель управления \ Программы \ Программы по умолчанию \ Установить ассоциации).

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

Это потому, что в любом случае в Win 7 (Win 10 я не проверял) программа по умолчанию для проводника хранится вНо если вы посмотрите там, вы найдете, например, в ключе OpenWithList что-то вродев моем случае. Но у меня есть несколько версий этой программы, все с одним и тем же именем, поэтому смена этого ключа не поможет.

Чтобы узнать, на что он на самом деле указывает, вам нужно перейти (в моем случае)

      HKEY_USERS\S-1-5-21-966747605-1980359026-2421819745-1000\Software\Classes\Applications\LibreOfficeWriterPortable.exe\shell\open\command

чтобы узнать, что на самом деле откроется, т. е. на что на самом деле указывает имя, которое они используют.

В Windows 10 вы можете определить, какие расширения файлов поддерживает программа, двумя способами.

1. «Установить настройки по умолчанию для приложения»

Идти кSettings->Defaults Apps->Set defaults by app. На следующей странице нажмитеmanagementв нужном вам приложении. В этой ситуации вы можете определить ассоциации файлов, которые поддерживают приложение.

2. Найти в реестре

Перейдите в редактор реестра. И найдите записьComputer\HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications. Эта запись реестра показывает, где каждая программа регистрирует свои ассоциации файлов. Вы можете найти значение записи по названию нужного приложения.

В моем случае я нахожу «IrfanView.exe», и его значение равноcomputer\HKEY_LOCAL_MACHINE\SOFTWARE\IrfanView\Capabilities\FileAssociations. если перейти к его местоположению, вы можете найти результат, как показано ниже.

В моем случае я пытался открыть случайное расширение с помощью Word Pad, поэтому я сделал следующее:

  1. Пуск -> Выполнить -> cmd.exe
  2. assoc .bhf=txtfile
  3. Затем найдите файл с этим расширением в проводнике Windows.
  4. Щелкните правой кнопкой мыши -> Открыть с помощью -> Выбрать другое приложение -> Установите флажок «Всегда использовать это приложение для открытия файлов .BHF».
  5. Выберите программу по вашему выбору (если она не отображается, выберите «Другие приложения»/«Найти другое приложение на этом компьютере»)

В моем случае у меня не было параметров пользовательского интерфейса для выбора программы по умолчанию или флажка, пока я не выполнил команду на шаге №2. Я думаю, что как только Windows начнет думать о файле как о «текстовом» файле, я думаю, он больше не считается «слишком опасным», чтобы позволить вам связывать его по своему усмотрению...

Другие вопросы по тегам