Как восстановить ассоциацию файлов

Содержание

Обзор изменений в сопоставлении типов файлов программам

Давайте посмотрим на основные способы связи типов файлов с программами, а также сравним некоторые моменты в Windows 8 с предыдущими ОС. Исторически в Windows программы сопоставляются различным типам файлов несколькими способами.

Панель управления

В панели управления можно найти группу Программы по умолчанию, два элемента которой станут главными героями сегодняшнего рассказа.


Увеличить рисунок

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


Увеличить рисунок

Здесь Windows 8 не отличается от своей предшественницы, но роль этого окна сильно возросла, в чем вы убедитесь, дочитав статью до конца.

Сопоставление типов файлов и протоколов с конкретными программами – это общий список типов файлов и протоколов из раздела реестра HKCR, для которых вы можете указать произвольную программу. Причем для каждого типа нужно выбирать программу отдельно, т.е. возможность массовой ассоциации отсутствует. По сути, этот способ аналогичен контекстному меню «Открыть с помощью».


Увеличить рисунок

Здесь тоже все очень похоже на Windows 7 – кнопка «Изменить программу» или двойной щелчок по расширению вызывает окно выбора программы. Но на рисунке в столбце «Умолчания» также хорошо виден новый тип – «Не выбрано», о котором я расскажу чуть ниже.

Двойной щелчок по файлу и команды в контекстном меню

Когда вы открываете файл двойным щелчком, срабатывает одна из команд контекстного меню, выделенная в нем жирным шрифтом.

Команда «Открыть»

В Windows 7 эта команда выполнялась в одном из двух случаев.

  1. Какая-либо программа уже связана с типом файла, который зарегистрирован в системе. В этом случае файл просто открывается в программе.
  2. Тип файла не зарегистрирован. В этом случае в Windows 7 вы видели такую картину:


Увеличить рисунок

Кстати, вы когда-нибудь пользовались поиском соответствия в Интернете? 🙂 В оболочку заложена ссылка https://go.microsoft.com/fwlink/?LinkId=57426&Ext=xyz, где вместо xyz подставляется расширение.

В Windows 8 команда «Открыть» выполняется только в первом случае, а во втором вы увидите новое меню «Открыть с помощью».

Команда «Открыть с помощью»

В Windows 7 эта команда становится главной в контекстном меню, когда тип файла зарегистрирован в реестре. В Windows 8, напротив, выделенный пункт меню «Открыть с помощью» означает, что тип файла не зарегистрирован. Кроме того, изменился и внешний вид окна.


Увеличить рисунок

Выбор произвольного приложения теперь не на виду, и приходится прокручивать список до конца, чтобы добраться до него.

Команда «Выбрать программу»

Этот новый пункт контекстного меню отражает появившийся в Windows 8 тип сопоставления «Не выбрано». Команда «Выбрать программу» становится главной в меню при соблюдении двух условий:

  1. Тип файла зарегистрирован, но с ним не связана ни одна программа.
  2. Какая-либо программа (в том числе идущая с системой) обозначила свою способность работать с этим типом.

При таком раскладе в Windows 7 использовалась команда «Открыть с помощью» (там, кстати, и находится пункт «Выбрать программу»). Однако при двойном щелчке по файлу появлялось пресловутое окно с предложением поискать соответствующую программу в Интернете, которое многие отключали твиком.


Увеличить рисунок

В Windows 8 команда «Открыть с помощью» в этом случае тоже есть, но при двойном щелчке по файлу вы сразу видите программы, в которых его можно открыть.


Увеличить рисунок

Родственная связь между командами «Выбрать программу» и «Открыть с помощью» хорошо видна. Разница между ними в том, что в Windows 8 при открытии файла с помощью программы необязательно связывать ее с данным типом, а выбор программы – это по сути ее ассоциация с типом файла. Обратите внимание, что в этом окне нет флажка «Использовать это приложение для всех файлов xyz».

Список рекомендуемых программ

Раз уж я забрался в дебри меню «Открыть с помощью», расскажу о том, как программы попадают в список рекомендуемых, который отображается в меню «Открыть с помощью» и «Выбрать программу».

Для начала программы могут при установке ассоциировать с собой тип файла, когда прописывают его в системе. Если тип файла уже зарегистрирован, создается раздел OpenWithProgIDs или OpenWithList в разделе реестра

HKEY_CLASSES_ROOT\.xyz\

В первом случае в разделе перечисляются идентификаторы программ, а во втором – для каждой программы создается подраздел с именем ее исполняемого файла.

Данные настройки являются системными, т.е. эти программы рекомендуются всем пользователям. Но есть также индивидуальные настройки.

Когда вы открываете файл, используя меню «Открыть с помощью», Windows запоминает ваши предпочтения в разделе реестра

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts

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

Параметр MRUList показывает, что последним использовался WordPad, а до этого я открывал файл в блокноте.

В этом аспекте Windows 8 почти ничем не отличается от Windows 7, но мы уже подошли к главному изменению в новой ОС Microsoft!

Настройки программы

Я думаю, что многие из вас шли именно этим путем, ассоциируя программу с типами файлов при установке или в ее настройках. Выглядит это примерно так:


Увеличить рисунок

В принципе, удобный и привычный способ, но…

В Windows 8 программы не могут сами изменять ассоциации для типов файлов, которые уже связаны с другими программами! Это верно как при установке программы, так и впоследствии, однако в обоих случаях работает сопоставление с незанятыми типами файлов.

Если разработчики программы учли это нововведение, после установки должно отображаться специальное сообщение, а в параметрах программы настройка ассоциаций должна отсутствовать или обязана вести в панель управления. Если же создатели программы не в курсе изменения, сопоставления просто не произойдет. И, конечно, это точно не сработает с портативными программами!

Я думаю, теория вас уже утомила, посему перехожу к практике!

Пример с браузером Opera

Браузер – это хороший пример программы, которая ассоциируется с несколькими типами файлов и протоколов. Давайте посмотрим, как это теперь происходит в Windows 8 (на момент написания статьи версия Opera 12.02).

Полная установка Opera

Вы скачали программу, запустили установку и по ходу дела назначили Opera основным браузером, что является стандартным вариантом. По окончании установки вы должны были увидеть такое сообщение:

Щелкнув его, вы могли бы на самом деле задать Opera в качестве основного браузера.

Если же вы не среагировали на это сообщение, то события стали развиваться совсем по другому сценарию. На первый взгляд, все прошло как обычно. Но, допустим, во время чата в Skype вам прислали ссылку. Она откроется не в Opera, а в браузере, который был основным ранее. Логично предположить, что после этого вы захотите проверить или изменить настройки.

Увеличить рисунок

Действительно, в панели управления видно, что Opera зарегистрирована в программах по умолчанию, но ассоциирована лишь с 9 из 29 типами файлов и протоколов. Это не означает, что при указании основного браузера должна устанавливаться связь со всеми типами файлов, которые он может открыть.

Однако браузеру не удалось завладеть некоторыми ассоциациями (в данном случае – ключевыми протоколами, как видно на рисунке ниже), потому что они уже были сопоставлены с другими программами.

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

Увеличить рисунок

Теперь вы увидели на практическом примере, что Opera не стала основным браузером, несмотря на обещание установщика. Он и не должен был этого обещать в соответствии с новыми рекомендациями Microsoft, о которых речь пойдет чуть ниже. Таким образом, несмотря на уведомление после установки и реализованный переход в панель управления из параметров программы, Opera пока частично несовместима с Windows 8.

Портативный вариант Opera

У вас где-то на диске есть папка с портативным браузером Opera. Конечно, в новой системе браузер не зарегистрирован, поэтому в элементе панели управления «Программы по умолчанию» его нет.

Когда вы попытаетесь задать типы файлов в параметрах программы, кнопка «Настройка» не будет работать совсем! Это происходит потому, что системе неизвестно, с какими типами файлов может работать незарегистрированная в реестре программа.

Более того, вы вообще не сможете сделать основным портативный браузер или почтовый клиент, потому что для привязки к протоколу программа должна быть зарегистрирована в системе!

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

Пример с IrfanView

Как правило, мы связываем проигрыватели и программы для просмотра изображений с целым набором типов файлов, причем их может быть даже больше, чем у браузера. Я выбрал IrfanView, чтобы проиллюстрировать более серьезную несовместимость с Windows 8, и, как следствие, обманчивость интерфейса. На момент написания статьи версия IrfanView 4.33.

Полная установка IrfanView

На этапе установки IrfanView предлагает вам связать с собой множество типов файлов и даже переспрашивает по ходу дела – мол, вы уверены, что хотите изменить ассоциации?

Увеличить рисунок

Программа явно не в курсе нововведений в Windows 8.

Первое отличие от Opera заключается в том, что после установки IrfanView не отображается системное сообщение о наличии новой программы для просмотра изображений и проигрывания медиа-файлов. Как следствие, не удается связать ее с поддерживаемыми типами файлов сразу после установки.

Второе отличие заключается в том, что в параметрах IrfanView невозможно связать программу с некоторыми типами файлов. Допустим, вы хотите ассоциировать IrfanView со всеми изображениями, в том числе в формате JPEG. Вы ставите флажок, жмете ОК и… фотографии продолжают открываться в той же программе, что и раньше.

Увеличить рисунок

На рисунке видно, что IrfanView завладел рядом расширений, но не всеми. Заданная в параметрах программы ассоциация с JPEG, не сработала, потому что изображения в этом формате связаны с другой программой, а Windows больше не позволяет программам изменять имеющиеся ассоциации.

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

По крайней мере, IrfanView правильно регистрируется в системе. Это означает, что когда вы попытаетесь открыть тип файла, сопоставление которого изменяли из настроек программы, система выведет такое сообщение:

Оно позволяет сопоставить программу с этим типом файла. Впрочем, IrfanView также заносит себя в список программ по умолчанию. и в панели управления можно ассоциировать его со всеми или избранными типами файлов.

Портативный вариант IrfanView

Как я объяснил чуть выше, IrfanView не удастся связать с некоторыми ключевыми типами файлов из параметров программы. А поскольку программа не зарегистрирована в системе, решение есть только одно. Нужно открыть элемент панели управления Сопоставление типов файлов и протоколов с конкретными программами и настраивать там вручную каждый тип файла, коих IrfanView поддерживает свыше 70.

Рекомендации Microsoft разработчикам

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

Ситуация в чем-то напоминает появление UAC в Windows, хотя масштаб и значимость изменения не столь велики. Но точно так же потребуется какое-то время, пока программы «научатся» правильно вести себя в системе.

Я предлагаю вам взглянуть на некоторые рекомендации Microsoft разработчикам, внедрение которых вы скоро начнете замечать в интерфейсе новых версий программ. Теперь программы в Windows:

  • Не должны отслеживать изменения в ассоциациях с типами файлов и протоколов. Подобное окно вам хорошо знакомо, не правда ли?
    Вообще, рекомендация несколько странная с учетом того, что возможность изменить привязку из программы все-таки существует. Да и Microsoft сама ее нарушает, как вы увидите ниже.
  • Не должны пытаться установить себя в качестве программы по умолчанию для файлов и протоколов, в том числе из параметров программы. Как вы понимаете, сейчас это делается сплошь и рядом.
    Как видите, обозреватель Microsoft не только официально стал браузером (что я и другие люди предлагали еще в 2008 году!), но и вроде бы играет по новым правилам. Ссылка «Использовать по умолчанию» ведет в панель управления, а опция мониторинга вовсе исчезла. Однако каким-то образом IE10 все же отслеживает, что он не является основным браузером, что несложно проверить при наличии другого браузера (если у вас его нет, нажмите в IE10).
  • Должны регистрироваться в системе, чтобы после установки Windows выводила сообщение о новой программе.
  • Должны интегрироваться в элемент панели управления «Программы по умолчанию». Это позволяет быстрее всего ассоциировать программу. В API предусмотрена функция для этой цели, и вы уже видели, как ее использует Opera.

В записи Зачем программам нужны установщики я упомянул, что они нужны для регистрации программ в системе. Теперь их роль очень сильно возросла!

Размышления на тему удобства и простоты использования

Microsoft не объясняет мотивов изменения в механизме ассоциации типов файлов с программами. Компания лишь подчеркивает, что теперь пользователи целиком и полностью контролируют этот процесс. Это правда, равно как и то, что сделать это можно лишь средствами системы.

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

Следуя перечисленным ниже рекомендациям, разработчики постепенно начнут убирать из параметров программ связь с конкретными расширениями и протоколами, отсылая нас в панель управления. Например, у меня так делает не только Opera, но и VLC. Но это не решит всех проблем.

Сила привычки у пользователей

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

Однако, учитывая многолетнюю практику смены ассоциаций в настройках программ, люди далеко не сразу поймут это изменение в поведении системы.

Пользователи установленных приложений будут гадать, кроется проблема в системе или программе. Что касается владельцев портативных программ, они будут считать, что возникла проблема с системой, ибо «раньше все работало».

Непоследовательное поведение программ

Сейчас, пока программы не адаптировались, самым неприятным аспектом является их неадекватное поведение. Речь о том, что некоторые ассоциации применяются из параметров программы, а некоторые – нет. Причем зависимость совершенно неочевидна!

Так, назначая Notepad++ для различных группа файлов, я сам впал в ступор, когда программа ассоциировалась с PHP, но не с TXT, хотя в параметрах рапортовала о связи.

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

Конечно, я быстро сообразил зайти в панель управления, где все и настроил. Впоследствии я уже уверенно поступал так же с некоторыми другими программами. Но такое поведение программ оставалось для меня загадкой до тех пор, пока я не прочел об изменениях в MSDN.

Неудачное системное сообщение о новой программе

Сообщение фактически является продолжением установки программы, позволяя ассоциировать ее с типами файлов.

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

  1. Не совсем очевидно, что сообщение является следствием установки программы. Конечно, догадаться несложно, но было бы намного проще, если бы в сообщении указывалась только что установленная программа (помните выделение новых программ цветом в меню «Пуск»?).
  2. Совсем не очевидно, что на это сообщение обязательно нужно среагировать, если хочется ассоциировать программу с ее типами файлов по окончании установки. Ведь установщик программы и так обещал это сделать! Впрочем, тут больше виновата не адаптировавшаяся программа, нежели система.
  3. Сообщение исчезает через небольшой промежуток времени, что логично. Однако если вы запустили установку и отошли от ПК, вы пропустите сообщение, и придется выполнять ассоциацию в панели управления, о чем еще нужно знать.
  4. Текст сообщения может быть обманчивым, как происходит в случае с установкой Opera и показанном выше сообщением. По иронии судьбы оно вовсе не означает, что браузер теперь связан с типами файлов для веб-страниц (HTM и HTML). На самом деле программа ассоциируется с протоколами (HTTP, HTTPS и т.п.) и некоторыми другими типами файлов. Возможно, это является недоработкой создателей Opera, но в Windows 7 связь с веб-страницами применяется нормально.
  5. Наконец, непоследовательно работает появление сообщения для одной и той же программы. В моих экспериментах оно всегда появлялось при первой установке браузеров. Но после удаления программы, контрольной перезагрузки и повторной установки сообщение уже не отображалось. Создалось ощущение, что информация о программе где-то сохранилась.

Возможно, по отдельности эти пункты не так страшны, но в совокупности картина далеко не радужная.

Предыдущие ОС Microsoft

Другой интересный момент, это проектирование программ под операционные системы разных поколений. Поведение программы при попытке изменения ассоциаций будет варьироваться в зависимости от ОС. Вот как выглядит попытка сделать Chrome основным браузером в Windows 8:

Также предположу, что создателям ряда программ придется закладывать в установщик более тонкую проверку на версию операционной системы. Так, если просто убрать из установщика Opera возможность сделать программу основным браузером в системе, та же Windows 7 никак не предупредит вас о том, что есть новая программа для веб-серфинга! И это будет уже серьезная проблема с точки зрения пользовательского опыта.

Я уже не говорю о том, что Windows XP до сих пор поддерживается, а в ней предок элемента управления «Программы по умолчанию» сильно отличается. И там вовсе не так удобно массово ассоциировать программу с типами файлов. Кстати, о массовости…

Массовая ассоциация категорий файлов

Многие проигрыватели и программы для просмотра изображений умеют воспроизводить аудио и видеофайлы. Допустим, вы хотите назначить IrfanView только для открытия изображений, потому что для музыки и фильмов у вас есть более удобный проигрыватель. Создатель IrfanView заботливо предусмотрел такую кнопку в параметрах программы:

Я уверен, что вы встречали нечто подобное и в других программах (выше в статье был снимок настроек AIMP с похожими функциями). Как вы понимаете, теперь такие опции бесполезны, но истинная проблема в том, что Windows 8 не предлагает ничего взамен!

Конечно, в панели управления есть возможность выбрать сразу все типы файлов, либо отмечать их по одному. Но тот же IrfanView поддерживает свыше 70 типов, из которых порядка 15 не являются изображениями. Связать эту программу только с картинками теперь стало сложнее.

Мои рекомендации вам

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

Будьте готовы к частично несовместимым программам

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

  • браузеры и почтовые клиенты
  • текстовые и графические редакторы
  • программы для просмотра изображений
  • проигрыватели медиа-файлов

Если программу не получается сопоставить с какими-то расширениями, вы сразу распознаете причину и вспомните эту статью.

Используйте установщики программ вместо их портативных версий

Это повышает вероятность правильной регистрации программ в системе и упрощает для вас ассоциацию с типами файлов. Я понимаю, что портативные программы удобны, потому что хранят настройки в своих папках. Однако теперь вам надо будет решать, стоит ли овчинка выделки.

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

Переносите параметры программ средствами Windows

Не надо думать, что отказ от портативных программ равносилен потере параметров, настроенных кропотливым трудом. Большинство современных программ грамотно сохраняет свои параметры в папках %AppData% и %LocalAppdata%. Их можно легко мигрировать с одной системы на другую средством переноса данных, если быть в курсе некоторых тонкостей.

Не игнорируйте системное сообщение о новых программах

Если сообщение появилось после установки программы, нажмите на него – это ускорит процесс сопоставления и сэкономит вам время.

Отучайтесь настраивать ассоциации в параметрах программ

Как вы уже поняли, это не позволяет переопределить ассоциации, что может быть вовсе неочевидно из настроек программы. Если вам нужно связать программу лишь с одним типом файлов, быстрее всего к цели приведет меню «Открыть с помощью».

Если же требуется массовое сопоставление, сразу открывайте «Программы по умолчанию» в панели управления и действуйте в зависимости от того, зарегистрирована ли программа в системе.

Опрос в конце предыдущей записи показал, что половина читателей блога несомненно столкнется с проблемой в Windows 8, пытаясь сопоставить свои портативные программы с их типами файлов. Им придется повозиться в общем списке расширений.

Однако даже использование установщиков программ не застрахует от нестыковок, если вы будете настраивать ассоциации в параметрах программ. Впрочем, установщики несомненно подсластят пилюлю, благодаря регистрации программы в элементе панели управления «Задание программ по умолчанию».

«Домашнее задание»

Если вы уже установили Windows 8, я предлагаю вам провести инвентаризацию своих любимых программ! Напишите в комментариях, как в их последних версиях обстоят дела с совместимостью в плане ассоциаций.

В частности, обращайте внимание на три момента:

  • предложение ассоциироваться с типами файлов при установке программы
  • отсутствие системного сообщения о новой программе после ее установки
  • наличие настроек для связи с конкретными типами файлов в параметрах программы

Любой из них свидетельствует о том, что программе нужна доработка. Будет очень интересно посмотреть на результаты!

Я догадываюсь, что сегодняшний материал способен вызвать очередную порцию ненависти к Windows 8 в комментариях блога. Напоминаю, что любые мнения, не относящиеся к теме обсуждения, следует направлять сюда. Так или иначе, все будущие ОС Microsoft с большой вероятностью унаследуют такое поведение вне зависимости от объема сотрясенного вами воздуха. Лучше направить свою энергию на то, чтобы довести информацию о необходимых изменениях до сведения разработчиков программ!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *