PDA

Показать полную графическую версию : Как правильно ассоциировать типы файлов с программами в Windows 8


Страниц : 1 2 [3]

Klezk
13-03-2014, 18:11
Эксперимент 2, на совершенно чистой Windows 8.1: http://yadi.sk/d/tCUZmoOFKTZrV, http://www.youtube.com/watch?v=X5kLQzuObWI
Даже драйвер видеокарты не был поставлен, поэтому плеер mpv показал черный квадрат. Это на минуту отвлекло меня при записи ролика от главной задачи :) Кстати, mpv таки может показывать видео на "Базовом видеоадаптере (Microsoft)", нужно было direct3d указать в настройках. Но это отступление от темы.

Что выяснилось в ходе эксперимента. Рег-файл несовершенен :) После самой первой переассоциации с Проигрывателя Windows Media на mpv с помощью рег-файла наблюдалось окно выбора программы при открытии видеоролика. Но только при самой первой. Далее я установил Media Player Classic, корректно проассоциировал файлы с ним, проиграл им ролик, затем запустил рег. Все переассоциировалось на mpv без вопросов. Далее я по умолчанию выбрал Проигрыватель Windows Media, проиграл ролик, снова запустил рег. Без вопросов ассоциации сменились.

Есть предположение, почему так. Мне следует перестать использовать ключ реестра HKEY_CLASSES_ROOT, потому что добавленное в него на самом деле раскладывается по ключам HKEY_LOCAL_MACHINE\SOFTWARE\Classes и HKEY_CURRENT_USER\SOFTWARE\Classes, я после посмотрел в реестре и увидел часть параметров в одном, а остальные в другом. Это кавардак, поэтому буду использовать HKEY_LOCAL_MACHINE\SOFTWARE\Classes, а ключи из HKEY_CURRENT_USER\SOFTWARE\Classes просто удалю (на чистой системе там и нет почти ничего, но на замусоренной может быть).

Ну и мелкий баг в предпоследней строке рега исправил. Итого, новая версия! (http://it-systems.org/mpv.reg)
На примере одного типа файла:

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications]
"mpv"="SOFTWARE\\mpv\\Capabilities"

[HKEY_LOCAL_MACHINE\SOFTWARE\mpv]
"exe32"="C:\\mpv\\mpv.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\mpv\Capabilities]
"ApplicationDescription"="mpv - free open source player"
"ApplicationName"="mpv - Movie Player"

[HKEY_LOCAL_MACHINE\SOFTWARE\mpv\Capabilities\FileAssociations]
".mp4"="mpv.mp4"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mpv.mp4]
@="mpv mp4 video"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mpv.mp4\DefaultIcon]
@="C:\\mpv\\mpv.exe,0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mpv.mp4\shell\open\command]
@="\"C:\\mpv\\mpv.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.mp4]
@="mpv.mp4"

[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mp4]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.mp4\OpenWithProgIds]

[-HKEY_CURRENT_USER\SOFTWARE\Classes\.mp4]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.mp4\OpenWithProgIds]
"mpv.mp4"=hex(0):

Vadikan
13-03-2014, 19:27
После самой первой переассоциации с Проигрывателя Windows Media на mpv с помощью рег-файла наблюдалось окно выбора программы при открытии видеоролика. »
Угу, о чем я вам и толковал...

Это кавардак, поэтому буду использовать HKEY_LOCAL_MACHINE\SOFTWARE\Classes, а ключи из HKEY_CURRENT_USER\SOFTWARE\Classes просто удалю »
А вы знаете, как они между собой связаны? Например, при наличии аналогичных записей в каждом, что побеждает?

По-поводу публикации REG-файла, вам надо использовать тег code, что обусловлено правилами (исправьте везде). А по содержимому, надо уже отказаться от REGEDIT4, вы же не в NT4 импортируете.

Klezk
13-03-2014, 19:39
Vadikan,
Странно, что это наблюдается только при первой смене ассоциации с штатного плеера. При повторных сменах и при первой смене с нештатного плеера (MPC) этого не происходит.
Впрочем, сейчас я протестирую исправленную версию :)

Побеждает HKEY_CURRENT_USER\Software\Classes, про это написано здесь: http://support.microsoft.com/kb/256986/ru

Тег code я не раз пытался использовать, наблюдаются глюки, или лишние пустые строки, или исчезают пустые строки, браузер стандартный для Windows IE 10/11

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

Про UAC видел в сети множество холивара. Мне кажется, что поскольку существуют вредоносные программы, которые обходят UAC так, что пользователь об этом не узнаёт, то ценность UAC весьма понижается. Если бы UAC был железобетонно надежен, то вряд ли кто-то захотел бы его отключать. Кстати, Вы заметили в первом ролике (где ОС с прикладными программами) практически мгновенную реакцию системы на клики? Это рабочий ПК, системный раздел с ОС там расположен на рамдиске. UAC, я соглашусь, немного повышает безопасность, но тратить время на взаимодействие с ним означает для меня потерянное время и в конечном итоге деньги. За рабочий день это в сумме может набраться час, как мне кажется... Но я не настаиваю, что все должны так делать. ОС на рамдиске держать тоже далеко не все готовы, так как кроме очевидных плюсов есть и минус - после перезагрузки не сохраняется ничего, абсолютно.

Klezk
14-03-2014, 00:57
Ну вот и всё :) Дело сделано.
Выражаю большое спасибо Vadikan, за конструктивную критику, которая подвигла меня исправить ошибки и найти решение.
Итак, способ "тихо" установить умолчания (файловые ассоциации) в Windows 8/8.1 через реестр найден и испытан.
Выкладываю финальный видеоролик. Рег-файл в нем применен приведенный постом выше (http://it-systems.org/mpv.reg)

http://yadi.sk/d/3Jb-t35AKVASz

http://www.youtube.com/watch?v=POZbXD1DnVo

Ошибка состояла в использовании ранее "вирутального" куста HKEY_CLASSES_ROOT, а после раздельной обработки HKEY_CURRENT_USER\Software\Classes и HKEY_LOCAL_MACHINE\SOFTWARE\Classes все шероховатости в работе рег-файла исчезли.

Надеюсь, это знание пойдет на пользу автоматизаторам.

Klezk
19-03-2014, 23:50
Stealthmax, Угу, угу, поздравить можно :) Но почему на Win7 не использовать? OpenWithProgIds в семерке тоже есть, если мне не изменяет память.

artyom00007
10-07-2014, 14:15
Собственно, как привязать обработку ключевых HTTP и HTTPS протоколов к портабельной Опере/Хрому, отвязав от Ишачка?

И, напоследок, можно ли каким-либо образом встроить незарегистрированный в системе софт в список программ по умолчанию?

Blast
10-07-2014, 14:31
Пример со всеми нужными параметрами реестра: Add your program to "Default Programs" in Windows 7 (http://ciantic.blogspot.com/2010/01/add-your-program-to-default-programs-in.html) (применимо к W8).

Попробуйте Default Programs Editor (http://defaultprogramseditor.com/) - упрощает множественные правки реестра.

Vadikan
10-07-2014, 14:54
как привязать обработку ключевых HTTP и HTTPS протоколов к портабельной Опере/Хрому »
Никак (http://www.outsidethebox.ms/faq-windows8/#assoc-portable)

можно ли каким-либо образом встроить незарегистрированный в системе софт в список программ по умолчанию? »
Читайте тему, а также см. Использование фильтров и поиска на конференции (http://forum.oszone.net/faq.php?faq=vb_faq#faq_faq_filters)

Smorvel
12-08-2014, 08:56
как привязать обработку ключевых HTTP и HTTPS протоколов к портабельной Опере/Хрому, отвязав от Ишачка? »
Никак »
Попал из гугла на эту тему.. Меня интересует программа, в которой можно добавить любую программу, в список программ по умолчанию, с возможностью задать все нужные расширения для нее, и самое важное, протоколы. Ни уж то такой нет?

Rick_
31-12-2014, 07:43
Зашибись!
Вывод: Только из-за того что есть необходимость эксплуатации портабельных прог - не стоит эксплуатировать восьмёрку.. ну и как понимаю также относится к последующим ОСям??? Или всё таки мелко мягкие отпустят прерогативу такой безопасности в ассоциировании? Иначе на кой сдались их побрякушки - когда шаг влево, шаг вправо, прыжок на месте - расстрел!

Vadikan
31-12-2014, 12:10
Rick_, ничто не мешает вам ассоциировать портативные программы вручную, за исключением тех случаев, когда нужна ассоциация протоколов. Необходимость эксплуатации портативных программ неочевидна без конкретных примеров. А так, вас никто не собирается уговаривать переходить на новые ОС.

Frost O.S
13-04-2015, 23:29
Спасибо!

MyPPuK
09-06-2015, 12:49
Доброго Времени Суток,
подскажите как дать в этой [самой продуманной] Восьмёрке - права прогам, как в предыдущих версиях ОС, прям в программе возможность ассоциироваться с нужными ей файлами? Это отдельное виндовское окошко ассоциации неудобно, в прогах ассоциироваться удобнее, там и по типу файлов можно жмякнуть (только аудио, только видео и тд), а то сделали нововведение...истребитель им в ангар блин...

AlterEgoFS
20-07-2015, 16:29
в хп было так

reg add HKEY_CLASSES_ROOT\.vbs /ve /d VBSFile /f
reg add HKEY_CLASSES_ROOT\VBSFile\Shell\Open\Command /ve /d "\"P:\akelpad\akelpad.exe\" \"%1\""

или так

assoc .vbs=vbsfile
ftype vbsfile="P:\akelpad\akelpad.exe" "%1"


и всё - по двойному щелчку всё открывалось

как в 8.1 автоматизировать ассоциации файлов?




© OSzone.net 2001-2012