Ассоциировать можно из самой программы, это минутное дело.
Из комментария в блоге
Как вы ассоциируете типы файлов с программами? Предположу, что чаще всего вы делаете это при установке программы или впоследствии из ее настроек. Если так, то в Windows 8 вас ждет сюрприз, и я бы не назвал его приятным…
Учитывая немалый объем статьи, я занес в FAQ краткие инструкции по ассоциации типов файлов и протоколов с программами.
Недавно один человек кинул мне в Messenger ссылку на одну статью MSDN, которая сразу напомнила мне об одной из тем форума Windows 8. Там участник мучился, пытаясь связать портативный проигрыватель с медиа-файлами. Сегодня я очень подробно объясню, почему у него возникла проблема. Вы также узнаете, что она может возникнуть с любыми программами, а не только с портативными.
[+] Сегодня в программе
- Обзор изменений в сопоставлении типов файлов программам
- Панель управления
- Двойной щелчок по файлу и команды в контекстном меню
- Команда «Открыть с помощью»
- Настройки программы
- Пример с браузером Opera
- Пример с IrfanView
- Рекомендации Microsoft разработчикам
- Размышления на тему удобства и простоты использования
- Мои рекомендации вам
- Будьте готовы к частично несовместимым программам
- Используйте установщики программ вместо их портативных версий
- Переносите параметры программ средствами Windows
- Не игнорируйте системное сообщение о новых программах
- Отучайтесь настраивать ассоциации в параметрах программ
- Заключение
- «Домашнее задание«
Обзор изменений в сопоставлении типов файлов программам
Давайте посмотрим на основные способы связи типов файлов с программами, а также сравним некоторые моменты в Windows 8 с предыдущими ОС. Исторически в Windows программы сопоставляются различным типам файлов несколькими способами.
Панель управления
В панели управления можно найти группу Программы по умолчанию, два элемента которой станут главными героями сегодняшнего рассказа.
Задание программы по умолчанию работает очень просто. Выделив программу в списке, вы можете назначить ее сразу для всех типов файлов, либо выбрать определенные. В обоих случаях список ограничен типами, для которых программа зарегистрировалась в реестре.
Здесь Windows 8 не отличается от своей предшественницы, но роль этого окна сильно возросла, в чем вы убедитесь, дочитав статью до конца.
Сопоставление типов файлов и протоколов с конкретными программами – это общий список типов файлов и протоколов из раздела реестра HKCR, для которых вы можете указать произвольную программу. Причем для каждого типа нужно выбирать программу отдельно, т.е. возможность массовой ассоциации отсутствует. По сути, этот способ аналогичен контекстному меню «Открыть с помощью».
Здесь тоже все очень похоже на Windows 7 – кнопка «Изменить программу» или двойной щелчок по расширению вызывает окно выбора программы. Но на рисунке в столбце «Умолчания» также хорошо виден новый тип – «Не выбрано», о котором я расскажу чуть ниже.
Двойной щелчок по файлу и команды в контекстном меню
Когда вы открываете файл двойным щелчком, срабатывает одна из команд контекстного меню, выделенная в нем жирным шрифтом.
Команда «Открыть»
В Windows 7 эта команда выполнялась в одном из двух случаев.
- Какая-либо программа уже связана с типом файла, который зарегистрирован в системе. В этом случае файл просто открывается в программе.
- Тип файла не зарегистрирован. В этом случае в Windows 7 вы видели такую картину:
Кстати, вы когда-нибудь пользовались поиском соответствия в Интернете? :) В оболочку заложена ссылка http://go.microsoft.com/fwlink/?LinkId=57426&Ext=xyz, где вместо xyz подставляется расширение.
В Windows 8 команда «Открыть» выполняется только в первом случае, а во втором вы увидите новое меню «Открыть с помощью».
Команда «Открыть с помощью»
В Windows 7 эта команда становится главной в контекстном меню, когда тип файла зарегистрирован в реестре. В Windows 8, напротив, выделенный пункт меню «Открыть с помощью» означает, что тип файла не зарегистрирован. Кроме того, изменился и внешний вид окна.
Выбор произвольного приложения теперь не на виду, и приходится прокручивать список до конца, чтобы добраться до него.
Команда «Выбрать программу»
Этот новый пункт контекстного меню отражает появившийся в Windows 8 тип сопоставления «Не выбрано». Команда «Выбрать программу» становится главной в меню при соблюдении двух условий:
- Тип файла зарегистрирован, но с ним не связана ни одна программа.
- Какая-либо программа (в том числе идущая с системой) обозначила свою способность работать с этим типом.
При таком раскладе в 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.
Неудачное системное сообщение о новой программе
Сообщение фактически является продолжением установки программы, позволяя ассоциировать ее с типами файлов.
Однако я вижу у него ряд недостатков, которые к тому же очень сильно проявляются в переходный период, пока программы не адаптированы к изменениям.
- Не совсем очевидно, что сообщение является следствием установки программы. Конечно, догадаться несложно, но было бы намного проще, если бы в сообщении указывалась только что установленная программа (помните выделение новых программ цветом в меню «Пуск»?).
- Совсем не очевидно, что на это сообщение обязательно нужно среагировать, если хочется ассоциировать программу с ее типами файлов по окончании установки. Ведь установщик программы и так обещал это сделать! Впрочем, тут больше виновата не адаптировавшаяся программа, нежели система.
- Сообщение исчезает через небольшой промежуток времени, что логично. Однако если вы запустили установку и отошли от ПК, вы пропустите сообщение, и придется выполнять ассоциацию в панели управления, о чем еще нужно знать.
- Текст сообщения может быть обманчивым, как происходит в случае с установкой Opera и показанном выше сообщением. По иронии судьбы оно вовсе не означает, что браузер теперь связан с типами файлов для веб-страниц (HTM и HTML). На самом деле программа ассоциируется с протоколами (HTTP, HTTPS и т.п.) и некоторыми другими типами файлов. Возможно, это является недоработкой создателей Opera, но в Windows 7 связь с веб-страницами применяется нормально.
- Наконец, непоследовательно работает появление сообщения для одной и той же программы. В моих экспериментах оно всегда появлялось при первой установке браузеров. Но после удаления программы, контрольной перезагрузки и повторной установки сообщение уже не отображалось. Создалось ощущение, что информация о программе где-то сохранилась.
Возможно, по отдельности эти пункты не так страшны, но в совокупности картина далеко не радужная.
Предыдущие ОС 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 с большой вероятностью унаследуют такое поведение вне зависимости от объема сотрясенного вами воздуха. Лучше направить свою энергию на то, чтобы довести информацию о необходимых изменениях до сведения разработчиков программ!
Михаил
Вадим, я вот на Win7 всё никак не могу победить такую вещь:
Пользователь нечаянно сбросил ассоциацию в файлу Excel на notepad
Возвращаю с помошью диалога «открыть с помощью…» НО иконка документов становится другой — белый листов и в нём значёк Excel. Как вернуть оригинал?
Vadim Sterkin
Михаил, я думаю, в случае с Windows 7 вам нужно начать отсюда, обращая внимание на пп. 3 и 4 в шапке. Там же продолжайте при нбх.
Алексей_Я
Доброе утро!
Когда я читал статью, в голове импульсом проскочила мысль, что в Редмонде выгнали всех, кто проектировал и разрабатывал первые системы NT :)
Проверить на win 8 пока не могу, но…
Выглядит это сложно. Но по сути — мы ставим программы, настраиваем и работаем. А если хочешь поэкспериментировать — в win8 есть Hyper-V. Остальное — это извращенство, на мой взгляд.
Что я вижу пока, не опробовав:
1. Пользователь и его уровень :) это проблема. Все мнят себя Наполеонами. А на деле — все очень тяжело. Пользователи часто не знают как сделать банальные вещи… а тут..
2. Плюс пункта 1 в том, что только квалифицированные люди смогут делать это)))
3. Плюс в том, что система будет более защищена. Вот банальный пример, который я часто вижу: сборка со «встроенным» софтом. Там иногда ТАКОЕ находишь, что диву даешься. Или вообще — WPI установщики, запускающие кучи скриптов по взлому, ассоциациям и… еще чему-нибудь зловредному)
4. В нашей стране распространен термин «халява», а также факты его практической реализации))) Потому у людей дома на машинах стоят кучи проигрывателей, браузеров (не берем спецов — им это нужно), аналогичных друг другу по функционалу программ и «утилит-лечилок» со встроенным блэкджеком) И вот эти программы лезут своими кривыми ручонками в систему. Идет защита от этого в том числе) На Западе ж как — купил одну прогу и рад. У нас нет) Пока нет.
ЗЫ. Поиском соответствия пользовался :) пару раз.
Vadim Sterkin
Алексей, да я бы не сказал, что ассоциация выглядит сложно. Просто определенный пласт программ нужно переделывать, чтобы не путать пользователей.
Andrey Bayatakov
Вот интересно как ассоциировать метро-программы с определенными типами файлов?
Установил на Windows 8 Cyberlink PowerDVD Mobile. При попытке открыть файл MKV из проводника меня отправляют в магазин. В списке Открыть с помощью… этой программы нет.
В Программах по умолчанию с PowerDVD ассоциировано только расширение .powerdvd-metro.
Хотел ассоциировать отредактировав соответствующие записи в реестре, но насколько я понял у этой программы нет запускающего exe файла…
Vadim Sterkin
Не понял… это единственное расширение, которое там перечислено что-ли? Тогда приложение просто кривое, раз не зарегистрировало себя для MKV.
Юрий
Спасибо, Вадим, классная и своевременная статья, по механизму ассоциации файлов в Win’s 8. Многим юзерам она поможет избежать душевных страданий от невозможности назначить любимый браузер или плейер, программой по умолчанию) А то поначалу многие впадали в ступор, от непонимания сути нового механизма ассоцаций. Не зря, ох не зря «Microsoft» предупреждал о коренных измениях в OS Win’s 8 в сравнении с OS Win’s 7. Ай, да Редмонд, ай, да сукин сын)))
Vadim Sterkin
Юрий, спасибо за отклик! Вообще-то совместимость сторонних приложений является очень важным направлением для Microsoft (ОС без них мало кому нужна). В данном случае затрагиваемые приложения сами по себе работают, но одна из заложенных в них функций — нет.
Думаю, компании следовало провести более тщательную работу в плане информирования разработчиков, а не делать вид, что кроме современных приложений ничего больше нет… Ну и разработчикам самим нужно тщательнее тестировать свое ПО.
Антон
В принципе объект статьи не в диву, многие думаю знали об этом, с нововведениями в Win8 познакомился тоже случайно, но вот ответ на вопрос я не нашел,
вопрос таков- идем по пути «»Панель управления\Все элементы панели управления\Программы по умолчанию\Выбор программ по умолчанию»» почему в списке уставленных программ не все программы отображаются?
к примеру нет в списке того же AIMPа
Vadim Sterkin
Антон, узнать об этом нововведении можно было опытным путем, конечно. Вопрос лишь в том, как понять причину… Вот вы с AIMP ведь не понимаете, а она в том, что программа не совместима с Windows 8 (хотя я не помню, прописывался ли AIMP у меня в программы по умолчанию, вечером гляну). Upd. Нет, не прописывается в 8.
Я написал разработчикам, можете дополнить там подробностями своими.
Nikolay
Вадим скажите пожалуйста а как привязать протоколы к Opera Portable
Vadim Sterkin
Николай, никак.
Павел
Не знал о таком. Они могли бы избежать недоразумений если бы запретили программам ассоциироваться даже с незанятыми файлами. И чтобы при попытке ассоциации появлялось сообщение об этом, которое вело бы на страницу настройки.
Vadim Sterkin
Павел, да, идея напрашивается. Видимо, ее реализация порождала еще больше проблем… Наверное, рассматривали и вариант с системным сообщением при безуспешной попытке связи, но отказались — если не по архитектурным соображениям, то из-за проблем с юзабилити.
Nikolay
Vadim Sterkin, Вадим FAQ не дает мне решение моей проблемы привязать протоколы к Opera Portable
Vadim Sterkin
Николай, обратитесь в эту тему и подробно, пошагово опишите свои действия.
Taras
Статья отличная спасибо
Vadim Sterkin
Тарас, я рад, что вам понравилось!
Andrey Bayatakov
Vadim Sterkin,
Да, это единственное расширение которое там перечислено.
Буду ждать обновлений. Думал может можно как-то вручную ассоциировать.
Vadim Sterkin
Андрей, PowerDVD Mobile, безусловно, не ассоциируется с MKV, я проверил. Но в статье есть вся информация для того чтобы это сделать своими руками. Давайте я покажу :)
1. Экспортируйте раздел реестра HKEY_CLASSES_ROOT\.powerdvd-metro\OpenWithProgids (узнаете имя подраздела?)
2. Откройте REG-файл в блокноте и замените powerdvd-metro на mkv
3. Импортируйте REG-файл.
Теперь приложение PowerDVD Mobile зарегистрировано для открытия MKV:
Способен ли он открывать их, несмотря на заявленную в описании поддержку, это уже другой вопрос :)
Vadim Sterkin
После вопроса Николая в статью и FAQ добавлено уточнение о том, что невозможно ассоциировать портативные программы с протоколами.
Виталий К. ©
Вадим, с каждой вашей статьёй я всё больше убеждаюсь, что не поставлю себе Вин8 на хостовый ПК))) Только в загоне виртуальной машины.
А вообще, думаю, обойдут этот механизм и всё будет по старому, вместе с портативными программами и перезаписью ассоциаций без согласия пользователя. Только конечно старые отвалятся.
Vadim Sterkin
Виталий, я сомневаюсь, что разработчики программ смогут обойти этот механизм в своих творениях, не внося глобальных изменений в систему. Даже если это возможно, такой ценой им это не нужно, но вы можете помечтать, конечно :)
Антон
сам AIMP прекрасно перехватывает ассоциации файлов и еще не одного сбоя не было, просто когда я прочитал вашу же статью,которая была довольно давненько и в ней был оговорен вопрос проблемы открытия графических файлов не «тем, чем хотелось бы» . в частности, я установил смотрелку от гугла «пикассо» в ней выставил ассоциации, а система все равно их перехватывала,в тот момент статья меня спасла, тогда же решив сделать так со всеми программами, большую их часть не увидел в списке..
Vadim Sterkin
Я не представляю, как он в Windows 8 может это делать с уже занятыми типами файлов из настроек программы. Думаю, вы преувеличиваете…
Виталий К. ©
А почему бы и нет? Будут делать, как сейчас Firefox с обновлениями, чтобы окно UAC не выводить- будут регистрировать службу. Службу можно запускать от имени учётной записи System, которой можно всё, больше, чем администратору. В итоге список служб в Вин8 зарастёт вот такими вынужденными службами.
Ну а я на ХР их буду удалять))
Почему вы так решили?
Думаю, будет даже хуже, чем сейчас. Например, с навязыванием ассоциаций. То есть установщикам с «сюрпризом», описанным в недавней записи, плевать по сути на цену, им главное место застолбить, навязать пользователю довесок, а обычные программы не смогут сами изменить их обратно, вынуждая пользователей лезть в «Настройки».
Но я думаю такая ситуация вынудит большинство нормальных разработчиков ставить хаки в систему на смену ассоциаций, и всё вернётся на круги своя, только в системе станет больше ненужного по сути мусора, занимающегося перекладыванием байтов.
Vadim Sterkin
Виталий, я думаю, что ваш пример со службой Firefox вовсе не является чем-то, идущим вразрез с рекомендациями производителя ОС, т.е. вы сравниваете яблоки с апельсинами.
Большинство разработчиков рекомендациям следовали, следуют и будут следовать — именно они являются нормальными, а не те, кто ставит хаки в систему. И чем популярнее программный продукт, тем важнее для разработчиков следование рекомендациям.
Алексей Маташкин
Вадим, спасибо за статью!
Очень вовремя получилось, как раз обнаружил подобное поведение, но вполне предсказуемо нашел в настройках.
На данный момент так себя ведет FastStone Image Viewer 4.6, но и обновление у него было год назад.
Так же не регистрируется в списке программ свежевышедший браузер от Yandex.
В остальном проблем не испытвал, посмотрим что будет.
Vadim Sterkin
Алексей, спасибо за отчет. FastStone — неудивительно, но Яндекс-браузер… стыд :)
Антон
Vadim Sterkin,
ну почему же.. в самом аимпе во вкладке ассоциации выбираю типы файлов жму применить.. вуаля!! Все работает.. из стандартного проводника по клику на файл выскакивает Аимп. Что тут можно преувеличить?
и кстати.. в стандартном проводнике иконка файлов поменялась на аимповскую
Vadim Sterkin
Антон, вы либо чего-то не понимаете, либо делаете что-то не так… Дано — Windows 8 RTM, AIMP 3.10.10704 (сегодняшний). Установлен без ассоциации файлов, чтобы не путаться. Открываю программу, выбираю расширения, применяю:
.pls — было ассоциировано с VLC, осталось с VLC
.mp2 — было ассоциировано с WMP, осталось с WMP
.mp3 — было ассоциировано с Музыка, стало «Не выбрано» (видимо, ассоциации современных приложений иначе обрабатываются)
Но ни в одном из случаев AIMP не сопоставился с этими типами файлов, что бы он вам не показывал в своем окне. Пример с IrfanView я разбирал более чем подробно, вникните в него.
Владимир
я считаю так
microsoft конечно может предпринять попытку допилить штатный апплет ассоциации типов файлов, но на практике скорее всего появится какое-то стороннее приложение, в базу которого будут заложены все известные форматы файлов и будут кнопки быстрой ассоциации: типов графической информации, аудио, видео и пр — останется нажать применить и изменения отправятся в штатный ассоциатор.
Vadim Sterkin
Владимир, говорят, мечты сбываются. Но можно пользоваться установщиками программ уже сейчас :)
Виталий К. ©
Ну так и с ассоциациями будет. Огнелис уже готов, надо только повесить пару новых функций на готовую службу- изменение ассоциаций и их мониторинг при запуске. Остальные тоже подтянутся.
Хотя я не знаю, идёт ли это вразрез или нет. Вот по вашему ставить службу лишь для обновления одной отдельно взятой программы- это нормально?
Vadim Sterkin
Виталий, пока что Firefox не только не умеет делать себя основным браузером, но еще и искренне верит, что стал таковым :) Так что рано или поздно мы увидим, какой путь изберет Mozilla. Я буду очень удивлен, если они вкрутят это в службу.
Хороший вопрос, и ответ на него — it depends :) Когда Сергей Ткаченко создает службу для своей мелкой утилиты с единственной целью пропустить начальный экран 8 при загрузке ОС, это перебор. Когда Mozilla, создает службу для обслуживания браузера — это нормально, ибо это делается для обеспечения безопасности миллионов людей. И я приветствую именно службу по сравнению с примитивным хранением программы в %LocalAppData%, поскольку последнее менее безопасно и идет вразрез с рекомендациями Microsoft.
Конечно, для отдельно взятого пользователя решение Сергея может выглядеть предпочтительнее, чем решение Mozilla. Но с точки зрения экосистемы Windows и безопасности пользователей подход Mozilla правильный. Да и что такого в службе? Ресурсы потребляет? Ну так по сравнению с браузером или даже одним его дополнением — это просто семечки :)
artem
я, на самом деле, не имею понятия зелёного о причинах описанных изменений. Но легко могу их вообразить. Да и ты сам сможешь, если вспомнишь основную причину всех изменений в Windows 8. Т.е. развитие подсистемы WinRT и её, гм-гм, иммерсивных приложений. Там ведь нет богатых настроек программ.
И не стоит ожидать от разработчиков таких программ собственных сложных пользовательских интерфейсов для сопоставления типов файлов. Вот и пришлось принудительно забрать эти действия из программ в систему. Чтобы, так сказать, уравнять в правах иммерсивные приложения с десктопными.
Vadim Sterkin
Артем, логика в твоей логике есть :) С другой стороны, не вижу причин, по которым надо было отбирать у десктопных приложений возможность ассоциироваться из своих настроек напрямую, тем самым создавая проблему юзабилити в них.
Виталий К. ©
По мне так лучше бы сделали централизованный механизм обновлений с разных серверов с поддержкой цифровой подписи, запускаемый от имени системы. Это мне больше всего нравится в Linux- централизованно в одном месте обновляется система и ПО, но при этом никто не запрещает добавлять свои репозитории.
Магазин Вин8 увы, не подходит- обновляет только с одного места, привязывая к поставщику. Или он не обновляет? Вроде должен.
Vadim Sterkin
Виталий, установленные из магазина приложения уведомляют вас о наличии обновлений, которые можно выполнить одним щелчком фактически. Однако свои «репозитории» можно добавить только на уровне организаций, где требуется Enterprise.
Антон
Vadim Sterkin,
аналогично.. система без изменений ассоциаций, ставим аимп, открываем настройки,переходим в закладку ассоциации фалов, выбираем расширения требуемых файлов (mp3,pls и т.д.) жмем применить. закрываем аимп, заходим в стандартный проводник, идем к файлу *.mp3 или *.pls,двойной клик по нему, открывается аимп начинается воспроизведение выбранного файла.. ЧТО я делаю не так или чего не понимаю?
Vadim Sterkin
Антон, как я сказал, в третьем случае появляется предложение выбрать программу, а в первых двух — системное сообщение «У вас есть новое приложение для открытия файлов этого типа». Я затрудняюсь сказать, почему у вас AIMP ведет себя иначе, причем не так, как должен. Считайте, что вам повезло :)
Антон
Забыл добавить,специально для этого делал полный сброс системы. Заглянул в системные настройки привязки типов файлов. В списке ассоциаций стандартного Медиа плеера напротив файла *.мр3 стоит галочка, а вот после манипуляций в настройках самого AIMPа, эта галочка изчезает и значек типа файла меняется на AIMPовский.
Виталий К. ©
А я вижу- продвижение метроприложений.
Vadim Sterkin
Безусловно!
Виталий К. ©
И это плохо.
artem
Причина именно в том, чтобы унифицировать способ. Давно же уже было выяснено, что если существует больше одного способа сделать что-то (например, выключение компьютера возможно как по кнопке, так и из списка, разворачивающегося по стрелке) — это не приводит ни к чему, кроме запутывания и запугивания пользователей.
Vadim Sterkin
Артем, унификация хороша, но не за счет создания проблем с юзабилити. Даже если абстрагироваться от того, что прямое сопоставление из настроек не работает. Что мы имеем вместо него? Костыль в виде тоста.
Допустим, я ассоциировал из программы 100500 типов файлов (я уверен в этом, исходя из предыдущего опыта). Через месяц я запустил один из файлов. Ладно еще мне покажут сообщение со списком рекомендуемых программ, но это, похоже, работает только с «бывшими» метро-ассоциациями. Иначе я вижу тост, причем не под курсором, а в правом верхнем углу (унификация же).
У меня всего несколько секунд на то, чтобы его прочесть, осознать и щелкнуть.
Я не новичок в облочке Windows, но мне этого времени не хватает. Какая еще новая программа? Я разве устанавливал что-то сейчас? Нет, конечно. Но тост уже ушел, а файл запустился в старой программе…
artem
Устроили тут чат! (c)
Виталий К. ©
Я вот только за множество способов. А то выберут один, а он как всегда лично мне неудобен.
artem
Пожалуйста, используйте Linux.Нет, серьёзно. Большинство людей считает иначе. И я даже затрудняюсь сказать, хорошо это или плохо. Вот здесь это соображение изложено более полно: http://technet.microsoft.com/magazine/ff458339
artem
Ну, чтобы хоть немного подсластить пилюлю, теперь меню «открыть с помощью…» работает без дополнительных ухищрений и помогает именно в таких случаях. Более того, оно теперь есть даже на риббоне.
Раньше оно работало только из контекстного меню — причём, насколько я помню, чтобы увидеть это меню, надо было зажимать какую-то хитрую комбинацию клавиш.
Поэтому сама роль «главной ассоциированной программы» теперь не так критична, как раньше.
Vadim Sterkin
Артем, честно говоря, я не увидел особых улучшений в меню «Открыть с помощью», кроме появления его варианта «Выбор программы». Я же писал в статье, что в нем раньше кнопка «Обзор» была на виду, а теперь до нее надо добираться. Хотя «букв» в диалоге стало меньше, что радует.
Но в этом меню есть еще и косяк, который я не раскрыл в статье (возможно, включу в викторину :) Именно из-за него я в FAQ описал способ ассоциации файлов с зажиманием Shift, чтобы не впадать в цикл «если»…
Ну оно и в проводнике 7 есть на панели :)
artem
да, и вот ещё что.
Ну ты же сам написал, что такое поведение теперь противоречит рекомендациям. Т.е. предполагается, что со временем видимость таких действий будут производить всё меньше и меньше приложений.
Ну и что касается твоей ремарки про то, что если спрятать встроенный редактор ассоциаций, то «поломается» логика работы в старых ОС. Что мешает проверять версию ОС и соответственно адаптировать работу приложений?
Если авторы программы уже вложились в свой собственный редактор ассоциаций, то добавить туда простую проверку на версию ОС не составит особого труда. Как и встроить ссылку на элемент панели управления при определении новой ОС.
Vadim Sterkin
Проверять на наличие ОС можно и нужно, но это далеко не идеальное решение. Представь, что ты в одном и том же редакторе работаешь дома в Windows 8, а на работе — в XP или 7. Твой пользовательский опыт отличается…
Конечно, со временем все наладится (и надеюсь, что не пройдет и полгода). Но работаем то мы уже сейчас, и потому я пишу об этом сейчас :) Через три года люди вообще не поймут, зачем я это написал…
P.S. И да, я написал, что противоречит рекомендациям — для разработчиков! А работают в программах пользователи…
artem
Я же не случайно выкусил код «en-US» из своей ссылки.
Так она откроется на том языке, который выставлен как предпочтительный в обозр… ой, в браузере.
Vadim Sterkin
Сорри, я не обратил внимания, т.к. у меня открылось на английском :) Убрал.
Антон
Vadim Sterkin,
по поводу выскакивающего предупреждения.. я его видел всего два раза.. когда ставил Хром и Firefox. в остальных случаях он молчит.. Переассоциация файлов из настроек программы стабильно не работает в Picaso 3, приходится идти в системные настройки. Вот как то так это
Vadim Sterkin
Антон, эти сообщения появляются, если программа зарегистрирована в системе (вне зависимости от ее регистрации в программах по умолчанию — это отдельный аспект). Конечно, у портативных программ его нет.
Вячеслав
Лично у меня голова пошла кругом, что еще раз подверждает актуальность представленной в стаатье информации.
Но вот о чем сильно задумался, так это об использовании портативных приложений.
P.S. А только начал к ним привыкать :)
Vadim Sterkin
Вячеслав, да, статья очень большая получилась, я предпочитаю поменьше раза в два как минимум. Но мне хотелось подробно осветить вопрос (и все равно я далеко не все аспекты ассоциаций раскрыл). а дробить на части не было смысла.
Я поэтому и дал «домашнее задание» — когда вы попробуете описанные в статье моменты на практике, пазл начнет складываться :) Главное, что вы сделали правильный вывод — с ассоциацией портативных приложений больше возни, а с браузерами и почтовыми клиентами — боли.
BoaSoft
С одной стороны, есть здравое зерно в новой системе ассоциаций. позволяющих уменьшить бардак. Но, как уже говорили, проблема с программами, открывающими многие файлы. Почему нельзя было сделать так. чтобы после установки система предложила бы ассоциировать новую программу с расширениями, рекомендованными разработчиком программы. Предупредждая при этом, какие асоциации уже заняты. А выставлять ручками ассоциации для десятка а то и более файлов очень не комильфо. А групповой ассоциации не предусмотрено.
Но. есть мониторинг реестра, программы для снятия и сравнения снимков реестра — все изменения можно отмониторить и сьимитировать пользовательский выбор.
Подобным способом я боролся с AIMP версии на 7, когда он еще не мог нормально устанавливать ассоциации.
Vadim Sterkin
Предусмотрено же — в «Программах по умолчанию».
Угу, помню вопросы в форуме были. К сожалению, разработчики AIMP снова оказались не готовы к выходу новой ОС.
Виталий К. ©
Ну так там и написано, что в ХР всё было лучше, а начиная с висты людям меню «Выключить» нравилось меньше, несмотря на то, что оно экономило щелчок. То есть МС судя по всему рассудил, что пользователям нравится щёлкать мышью, и запихал выключение подальше.
Andrey Bayatakov
Vadim Sterkin,
Спасибо :)
Не знаю куда я смотрел…
Vadim Sterkin
Андрей, так проигрывает он MKV? :)
Andrey Bayatakov
Vadim Sterkin,
проигрывает. :) Он и до установления ассоциации с файлами MKV их проигрывал, только открывать их нужно было из программы. Думал после установления ассоциации можно будет открывать их из проводника, просто кликнув. Ан нет, при клике на файле вместо его воспроизведения открывается главное окно программы. Пробовал также с другими типами файлов, mp3, jpg — результат тот же. Похоже это бета-версия.
Vadim Sterkin
Да, видимо, не допилили еще, потому и ассоциацию нормальную не прикрутили.
Maxim
Спасибо, Вадим, это прекрасная статья.
Кинул ссылку знакомым разработчикам — никто не знал, что в разрабатываемой программе придется менять механизм ассоциации.
Vadim Sterkin
Спасибо за отклик, Максим. Как я уже говорил, Microsoft следовало уделить больше внимания тому, чтобы донести до разработчиков эти сведения, но компания слишком сконцентрирована на современных приложениях.
Разработчикам не то чтобы нужно менять механизм ассоциации, скорее им нужно убирать из программ ассоциацию с несколькими типами файлов, отправляя в панель управления. Ну и обязательно регистрироваться в программах по умолчанию, иначе все плохо :)
Animator
Гм, ну и где там групповое ассоциирование?
Идем в «Программы по умолчанию/Сопоставить типы файлов» и чего?
Только по одному зато любой проге.
Тогда назад и «Задать программы по умолчанию», да если внизу кликнуть по «Сопоставить типы…» то можно выбрать несколько подряд но только те которые прописаны в реестре для текущей проги.
Если же надо привязать что то иное то по одному.
Но это ладно,
Потеря юзабилити серьезная по следующей причине:
Есть две проги у обоих имеется возможность играть аудио и видео файлы поэтому при нажатии «Задать программу по умолчанию» (внизу) привязывается все а если затем выбрать другую прогу и повторить то тоже самое но к ней.
Конечно можно кликнуть ниже (Сопоставить типы…) и выбрав/применив нужное повторить со следующей прогой однако гораздо быстрее и проще (было) кликнуть в настройках прог по кнопкам «Только видео» или «Только аудио» но нет, стоило бы добавить подобный функционал в окно группового выбора ассоциаций (в зависимости от программы) однако я чего то сомневаюсь в этом, а может…
Vadim Sterkin
Вы не туда идете… В FAQ изучите картинку в шаге 2 и шаг 3.
Александр
AkelPad последней версии (4.7.9) прекрасно позволяет перерегистрировать ассоциации файлов из настроек из самой программы, не будучи при этом зарегистрированным в «Программах по умолчанию», причем работает как регистрация, так и отмена регистрации (т.е. возврат к предыдущей ассоциации).
Видать, таки есть лазейка :)
Дополнено. Если ассоциировать AkelPad, допустим, с .txt, а потом через «Настройку сопоставлений» в Панели управления выбрать Блокнот, то что-то ломается, и настройка через AkelPad больше не работает до тех пор, пока в Панели управления не вернуть ассоциацию с AkelPad.
В общем, как я и подозревал, все сложно в Windows с ассоциациями :)