[addon] MPC-HC Shell Extension 1.0.0.1
Вложений: 1
MPC-HC Shell Extension 1.0.0.1
Расширение контекстного меню для Media Player Classic - Home Cinema. Тип интеграции аддона - SVPACK. Небольшое дополнение к популярному Media Player Classic - Home Cinema. Создает в контекстном меню файлов пункты: В типовой установке этого расширения пункты отображаются только для ассоциированных с Media Player Classic - Home Cinema файлов. Немного поразмыслив, мне удалось найти способ заставить эти пункты отображаться для всех поддерживаемых плеером типов файлов, даже если они не ассоциированы с Media Player Classic - Home Cinema. Делается это через ключи реестра отвечающие за системные файловые ассоциации. К примеру так: [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\.flv\shellex\ContextMenuHandlers\MPCHCShe llExt] @="{A2CF4243-6525-4764-B3F5-2FCDE2F47989}" То есть, мы прописываем расширение оболочки не только в ключи файловых ассоциаций [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mplayerc.flv\shellex\ContextMenuHandlers\MPCHCShellExt] @="{A2CF4243-6525-4764-B3F5-2FCDE2F47989}", но и в ключи системных файловых ассоциаций, для чего эти ключи специально создаются при работе скрипта установки аддона. В результате, если даже, тот или иной файл ассоциирован с другим приложением, пункты контекстного меню будут отражены и в этом случае. Оказывается это очень удобно. Ассоциируем медиафайлы с каким-нибудь более продвинутым плеером, но всегда имеем возможность удобно открыть их в Media Player Classic - Home Cinema. Аддон целесообразно устанавливать после Media Player Classic - Home Cinema. Файл расширения устанавливается в собственную директорию установки Program Files\MPC-HC Shell Extension, где создается и деинсталлятор расширения оболочки. Аддон создает в Главном меню Пуск ярлыки, отвечающие за удаление, ре-ререгистрацию и де-регистрацию расширения. Возможно использование на живой системе. Ключ тихой установки /S. Ссылка для скачивание аддона: http://rusfolder.com/35501516 Вариант аддона с поддержкой установки на 64-битные системы (добавлена библиотека MPCHCShellExt64.dll). Определение системы при установке автоматическое. Ссылка для скачивания: http://rusfolder.com/35772418 |
Эм.. Спасибо за расширение, порадовала идея, но нельзя ли упростить до твика?
|
Цитата:
|
Вот без деинсталлятора :)
|
Цитата:
|
Цитата:
|
Цитата:
Цитата:
|
Цитата:
Да и вообще, можно написать простенький GUI, который будит определять, какие ключи вносить, раз уж простой пункт в контекстном меню требует так много заморочек. На чем скрипт-то (может помогу с GUI)? |
Цитата:
|
Я имел в виду перенастройку уже установленного расширения
|
Цитата:
|
Цитата:
|
wolkow70, а в шапку 300 кило прицепить нельзя? Смешно смотреть - подождите 30 секунд, а то наш трафик того....
|
Цитата:
|
wolkow70,
Можно ли выложить одним твиком реестра, какие изменения вносяться в реестр? Есть желание встроить это прямо в инсталлятор Медиаплеера. |
Цитата:
2. Для каждого нужного и поддерживаемого плеером расширения дополнительно создается ключ реестра по шаблону: [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\.flv\shellex\ContextMenuHandlers\MPCHCShe llExt] @="{A2CF4243-6525-4764-B3F5-2FCDE2F47989}" Причем, в этой разделе для некоторых расширений уже есть ключи (например для AVI, MPG, WMV и других системных расширений), поэтому в эти ключи добавляется только само расширение: \shellex\ContextMenuHandlers\MPCHCShe llExt] @="{A2CF4243-6525-4764-B3F5-2FCDE2F47989}" В сборке деинсталлятор потом все это корректно удаляет (полностью ключи или подключи для уже существовавших ключей, де-регистрацию и удаление модуля). Твика у меня нет, так как изменения в реестре вносятся коммандами скрипта сборки. Меня устраивает вариант инсталлятора, так как можно оперативно отметить только нужные расширения. Кроме того, деинсталлятор проверяет ключи на наличие других данных, и если данных нет, то удяляет весь ключ, а если есть, то только свое значение. |
На семёрке должно работать?
|
Цитата:
|
Цитата:
|
Аддон полезный, но у меня на семёрке работает после инсталляции, а после перезагрузки системы уже нет, в чём может быть причина?
|
Цитата:
|
Семёрка 32х, только что обнаружил если UAC отключаешь тогда всё работает. Может манифест в dll поправить?
|
Цитата:
|
Новый ноут Fujitsu AH531, Windows 7 x32, официальные обновления с ru-board (список TAILORD), не работает расширение. С отключённым UAC - работает, изменение манифеста тоже ничего не дало, запуск explorer.exe с правами админа - тоже... Как повысить привилегии этой dll?
|
Цитата:
в HKLM\SOFTWARE\Classes или в HKCU\SOFTWARE\Classes ? Прописываются ли в реестре для нужных расширений ключи типа: [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\.flv\shellex\ContextMenuHandlers\MPCHCShe llExt] @="{A2CF4243-6525-4764-B3F5-2FCDE2F47989}" |
CLSID {A2CF4243-6525-4764-B3F5-2FCDE2F47989} прописывается в HKLM\SOFTWARE\Classes
ключ типа: [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\.flv\shellex\ContextMenuHandlers\MPCHCShe llExt] @="{A2CF4243-6525-4764-B3F5-2FCDE2F47989}" прописан. Заметил такую особенность. Если MPC-HC запустить в ручную, до клика по расширению, то тогда расширение работает, т.е. библиотека передаёт плееру путь к файлу и он его воспроизводит. Получается, что библиотека не может именно запустить плеер, при включённом UAC, но при отключённом UAC запускает. И почему то всё работает после установки плеера и расширения до перезагрузки, а после перезагрузки - только с отключённым UAC и это уже на двух разных компах с Win 7 x32. |
Цитата:
[HKEY_CURRENT_USER\Software\Gabest\Media Player Classic] "ExePath"="C:\\Program Files\\K-Lite Codec Pack\\Media Player Classic\\mpc-hc.exe" [HKEY_LOCAL_MACHINE\SOFTWARE\Gabest\Media Player Classic] "ExePath"="C:\\Program Files\\K-Lite Codec Pack\\Media Player Classic\\mpc-hc.exe" Если этот путь не прописан, то библиотека не сможет передать команду открыть файл. При правильной установке MPC-HC при инсталляции прописывается путь к плееру. Иначе, приходится открывать плеер, чтобы путь появился. Именно поэтому,я рекомендовал устанавливать вначале плеер, затем библиотеку. Ключи CLSID у вас правильно прописываются. Еще раз проверил у себя на Win 7 (32) , все работает. |
[HKEY_CURRENT_USER\Software\Gabest\Media Player Classic]
"ExePath"="C:\\Program Files\\K-Lite Codec Pack\\Media Player Classic\\mpc-hc.exe" [HKEY_LOCAL_MACHINE\SOFTWARE\Gabest\Media Player Classic] "ExePath"="C:\\Program Files\\K-Lite Codec Pack\\Media Player Classic\\mpc-hc.exe" эти ключи тоже есть. Устанавливаю MPC-HC, однократно запускаю плеер Устанавливаю расширение - всё работает Перезагружаюсь - не работает Отлючаю UAC - работает Включаю UAC - не работает Удаляю MPC-HC Удаляю Расширение Устанавливаю MPC-HC, однократно запускаю плеер Устанавливаю расширение - всё работает Перезагружаюсь - не работает Отлючаю UAC - работает Включаю UAC - не работает Удаляю MPC-HC Удаляю Расширение и.т.д. При этом, при открытом плеере, всегда работает. Это всё на двух разных компах с Win7 x32, Rus OEM Ultimate Лицензия. Один из которых, только с что установленной системой + официальные обновления с руборда. Учётка, созданная при установке системы пользователь с правами админа. что же можно ещё сделать что бы оно наконец то заработало? |
Цитата:
|
запустил от имени админа такой батник
regsvr32 /u "%~dp0MPCHCShellExt.dll" taskkill /im explorer.exe /f ping -n 5 -w 1 127.0.0.1 > nul start explorer.exe regsvr32 "%~dp0MPCHCShellExt.dll" работает! сейчас перезагружусь, посмотрю что будет.. нет, после перезагрузки не работает. интересное явление, просто даже интересно какая может быть причина такому? |
а вот так тоже не работает, т.е. важна именно перезагрузка эксплорера.
regsvr32 /u "%~dp0MPCHCShellExt.dll" ping -n 5 -w 1 127.0.0.1 > nul regsvr32 "%~dp0MPCHCShellExt.dll" и вот интересно) regsvr32 /u "%~dp0MPCHCShellExt.dll" taskkill /im explorer.exe /f ping -n 5 -w 1 127.0.0.1 > nul start explorer.exe regsvr32 "%~dp0MPCHCShellExt.dll" работает, затем, taskkill /im explorer.exe /f ping -n 5 -w 1 127.0.0.1 > nul start explorer.exe уже не работает, как то библиотека с эксплорером то дружит то нет :) в чём же причина? |
Цитата:
|
Нет, не работает ваше расширение. Что только не делал. В конце концов нашёл программу Open++ за 10мин сделал тоже самое. Она корректно работает.
|
Пересобрал аддон, обновленная ссылка на закачку помещена в шапке.
Доработка стала необходимой в связи с тем, что в последних версиях Media Player Classic - Home Cinema, программа при запуске прописывает путь к исполняемому файлу только в ключ реестра для текущего пользователя. Библиотека MPCHCShellExt.dll при регистрации читает путь из ключа для всех пользователей, поэтому с последними версиями могли быть проблемы. Доработка заключается в том, что при установке читается путь к файлу mpc-hc.exe из ключа в разделе HKCU "Software\Gabest\Media Player Classic" (параметр "ExePath") и прописывается в раздел HKLM "Software\Gabest\Media Player Classic" (параметр "ExePath") |
Сделал вариант аддона с поддержкой установки на 64-битные системы (добавлена библиотека MPCHCShellExt64.dll).
Определение разрядности системы при установке автоматическое. Ссылка для скачивания: http://rusfolder.com/35772418 |
Время: 08:58. |
Время: 08:58.
© OSzone.net 2001-