Показать сообщение отдельно
Старый 14.03.2006, 15:05     # 56
Dr.God
::VIP::
Creator
 
Аватар для Dr.God
 
Регистрация: 30.05.2004
Адрес: Alongside
Сообщения: 2 598

Dr.God Бог с наворотамиDr.God Бог с наворотами
Dr.God Бог с наворотамиDr.God Бог с наворотамиDr.God Бог с наворотамиDr.God Бог с наворотамиDr.God Бог с наворотамиDr.God Бог с наворотамиDr.God Бог с наворотамиDr.God Бог с наворотамиDr.God Бог с наворотамиDr.God Бог с наворотамиDr.God Бог с наворотами
• Autoplay Handler – Обработчик списка для автовоспроизведения

Речь пойдёт о списке, который появляется при запуске диска, в зависимости от типа содержимого последнего.
Как известно, всего типов семь:
Код:
1. Музыкальные файлы (Audio Files)
2. Изображение (Images)
3. Видео файлы (Video files)
4. Смешанное содержимое (Mixed content)
5. Музыкальный CD (Audio CD)
6. DVD-фильм (DVD)
7. Чистый компакт-диск (Blank disc)
Настроить автоматическое действие для каждого типа можно в св-ах привода, на вкладке «Автозапуск», но меня больше интересует изменение предлагаемых действий, т.е. удаление/добавление и редактирование элементов списка (предлагаемых программ).

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

Весь механизм формирования списка достаточно прост и построен на двух ключах:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandle rs\EventHandlers
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandle rs\Handlers


Первый ключ ("EventHandlers") содержит указание на тип действия в зависимости от содержимого, например, раздел "ShowPicturesOnArrival" («показывать изображение при поступлении»), а также параметры или параметр, отсылающий к конкретному разделу второго ключа ("Handlers"). В таком разделе в основном устанавливаются:

1. название действия (Action);
2. иконка (DefaultIcon);
3. вызов программного ID (InvokeProgID) - ключевой параметр, т.к. именно благодаря ему становится ясно, чем осуществить действие, идёт обращение к HKCR\progid (progid - например, txtfile);
4. вызов операции над объектом (InvokeVerb);
5. провайдер (Provider) - что конкретно используется, как правило, название программы или библиотека.

Пример.
Код:
Если
«EventHandlers» = «PlayCDAudioOnArrival»;
«PlayCDAudioOnArrival» = «MSPlayCDAudioOnArrival REG_SZ»,
то 
«Handlers» = «MSPlayCDAudioOnArrival»

«MSPlayCDAudioOnArrival» имеет следующие параметры типа REG_SZ:
"Action"="@wmploc.dll,-6503"
"DefaultIcon" = %ProgramFiles%\Windows Media Player\wmplayer.exe,0
"InvokeProgID"="WMP.AudioCD"
"InvokeVerb"="play"
"Provider"="@wmploc.dll,-6502"
Таким образом, можно редактировать не только список программ, но и действие конкретной программы, которое реально задать отличным от «open», если, разумеется, это предусмотрено самой утилитой.
__________________
Оверклокинг Windows XP
Dr.God вне форума