Эксперимент 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 просто удалю (на чистой системе там и нет почти ничего, но на замусоренной может быть).
Ну и мелкий баг в предпоследней строке рега исправил.
Итого, новая версия!
На примере одного типа файла:
Код:
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):