Автозапуск по-взрослому 2

Мой Компьютер, №11 (515), 28.07.2008

В предыдущей статье на эту тему (МК, №9 (513)) мы с вами уже рассмотрели общие возможности нового механизма автозапуска, а также способы его отключения и включения, и, конечно, способы его настройки при помощи мастера «Автозапуск» папки «Панель управления». Теперь пришла пора научиться работать с механизмом хранения параметров автозапуска в реестре. Эти сведения могут быть полезны и разработчикам, которые хотели бы реализовать в создаваемой программе возможности по работе с механизмом автозапуска операционной системы Windows Vista.

Все дополнительные команды по работе с содержимым носителей (помимо команд Не выполнять никаких действий, Спрашивать каждый раз и Открыть папку для просмотра файлов, используя Проводник) хранятся в параметрах строкового типа подразделов ветви реестра HKLMSoftwareMicrosoftWindows CurrentVersionexplorerAutoplayHandlers EventHandlers.

Содержимое каждого выпадающего списка, отображаемого в мастере Автозапуск (а следовательно, и содержимое диалога Автозапуск для конкретного типа содержимого носителя), формируется отдельным дочерним подразделом данной ветви реестра. Основные из этих подразделов перечислены ниже.

  • PlayCDAudioOnArrival. Звуковой CD.
  • PlayDVDMovieOnArrival. Фильмы на DVD.
  • PlayEnhancedCDOnArrival. Звуковой улучшенный CD.
  • AutorunINFLegacyArrival. Программы и игры.
  • HandleCDBurningOnArrival. Чистый CD.
  • PlayEnhancedDVDOnArrival. Фильмы на улучшенном DVD.
  • PlayMusicFilesOnArrival. Звуковые файлы.
  • PlayVideoFilesOnArrival. Видеофайлы.
  • ShowPicturesOnArrival. Изображения.
  • HandleDVDBurningOnArrival. Чистый DVD.
  • MixedContentOnArrival. Смешанное содержимое.
  • PlayBluRayOnArrival. Фильмы на диске Blu-ray.
  • PlayDVDAudioOnArrival. Звуковой DVD.
  • PlayHDDVDOnArrival. Фильмы на HD DVD.
  • PlaySuperVideoCDMovieOnArrival. Супервидео CD.
  • PlayVideoCDMovieOnArrival. Видео CD.

Содержимое выпадающего списка мастера Автозапуск формируется при помощи параметров строкового типа, расположенных в ветвях реестра вида HKLMSoftwareMicrosoftWindows CurrentVersionexplorerAutoplay HandlersEventHandlers»подраздел выпадающего списка, описанный выше». Названия этих параметров определяются названиями подразделов ветви HKLMSoftwareMicrosoftWindows CurrentVersionexplorerAutoplayHandlersHandlers. Именно при помощи подразделов данной ветви реестра определяется не только название действия в выпадающем списке, но и результаты применения соответствующего действия.

Теперь давайте перечислим названия основных подразделов ветви HKLMSoftwareMicrosoft WindowsCurrentVersionexplorer AutoplayHandlersHandlers.

  • EhomeMusicDropTarget. Команда Воспроизводить звуковой CD. По умолчанию данная команда отображается: «Звуковой CD», «Звуковой улучшенный CD».
  • MSOpenFolder. Команда Открыть папку для просмотра файлов. По умолчанию данная команда отображается во всех списках.
  • MSTakeNoAction. Команда Не выполнять никаких действий. По умолчанию данная команда отображается во всех списках.
  • MSPromptEachTime. Команда Спрашивать каждый раз. По умолчанию данная команда отображается во всех списках.
  • MSAutoRun. Команда Установить или выполнить программу. По умолчанию данная команда отображается для: «Звуковой улучшенный CD», «Программы и игры», «Звуковой улучшенный DVD».
  • EHomeVideosHandler. Команда Воспроизводить. По умолчанию данная команда отображается для: «Видеофайлы».
  • MSShowPicturesOnArrival. Команда Просмотреть изображения. По умолчанию данная команда отображается для: «Изображения».
  • EHomePhotosHandler. Команда Просмотреть. По умолчанию данная команда отображается для: «Изображения».
  • MSPhotoAcquireDropHandler. Команда Импортировать изображения. По умолчанию данная команда отображается для: «Видеофайлы», «Изображения».
  • MagicUSBCable. Команда Перенос файлов и параметров настройки.
  • MSDVDArrivalDvdMaker. Команда Записать видео-DVD. По умолчанию данная команда отображается для: «Чистый DVD».
  • MSPlayMediaOnArrival. Команда Воспроизводить.
  • MSSHAudioDevHandler. Команда Просмотреть музыкальные файлы.
  • MSVideoCameraArrivalCaptureWizard. Команда Импорт видео.
  • MSWPDNetworkConfigHandler. Команда Настройка устройства для сетевого доступа.
  • MSWPDShellNamespaceHandler. Команда Открыть устройство для просмотра файлов.

Итак, результат выбора определенного действия из диалога Автозапуск определяется при помощи параметров строкового типа ветви реестра HKLMSoftwareMicrosoftWindows CurrentVersionexplorerAutoplay HandlersHandlers»идентификатор команды выпадающего списка». Ниже перечислены основные из этих параметров.

  • Action. Содержит название действия, отображаемое в диалоге Автозапуск.
  • DefaultIcon. Определяет иконку, отображаемую в диалоге Автозапуск.
  • InvokeProgId. Содержит идентификатор действия, выполняемого при выборе данного элемента диалога Автозапуск. Само действие описывается в параметре (по умолчанию) ветви реестра HKCR»значение параметра InvokeProgId»shell»значение параметра InvokeVerb»command.
  • InvokeVerb. Определяет идентификатор конкретной команды, которая будет выполнена при выборе соответствующего действия из диалога Автозапуск.
  • Provider. Определяет программу или библиотеку, которая реализует возможность выполнения данной команды.

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

Пример 1: удаление лишних команд

Первый пример достаточно простой. Давайте попробуем удалить какие-либо команды из диалога Автозапуск. Например, на рис. 1 представлен достаточно милый диалог Автозапуск, страдающий только одной проблемой — лишним «весом».

Рис. 1

Зная себя, я с уверенностью могу сказать, что такие команды данного диалога, как Воспроизводить звуковой CD, Play CD Audio, а также все команды, добавленные iTunes, мне совершенно не нужны. А если они мне не нужны, тогда зачем на них постоянно смотреть? Давайте их уберем.

Рис. 2

Для этого достаточно отредактировать содержимое ветви реестра HKLMSOFTWAREMicrosoftWindows CurrentVersionexplorerAutoplayHandlersEvent HandlersPlayCDAudioOnArrival, в которой, как мы уже знаем, определяются команды, отображаемые в диалоге Автозапуск для звукового CD. В этой ветви реестра находится куча строковых параметров, из которых нужно оставить только MSPlayCDAudioOnArrival и MSRipCDAudioOnArrival. Остальные можно переименовать. В итоге наш диалог похудел настолько, насколько даже и не снилось тем людям, которые ходят со значками «Спроси меня, как я похудел» (рис. 2).

Пример 2: добавление своей собственной команды

Следующий пример будет посложнее. Мы попробуем добавить в диалог Автозапуск свою собственную команду. Например, давайте добавим команду, которая будет копировать все содержимое диска/носителя в каталог c:tmp. Наша команда будет отображаться для носителей с любым содержимым.

Если мы хотим, чтобы команда отображалась для любых носителей, ее событие нужно добавить к ветви реестра HKLMSOFTWAREMicrosoftWindows CurrentVersionexplorer AutoplayHandlersEventHandlersUnknown ContentOnArrival. Добавим к этой ветви реестра параметр строкового типа MyTEST.

После того, как мы добавили событие MyTEST, нам необходимо создать это событие. Для этого необходимо создать ветвь реестра HKLMSOFTWAREMicrosoftWindows CurrentVersionexplorer AutoplayHandlers HandlersMyTEST, после чего создать в ней как минимум следующие параметры строкового типа.

  • Action. Определяет название команды в диалоге Автозапуск. Например, назовем свою команду именем Copy to.
  • DefaultIcon. Определяет иконку, которая будет отображаться напротив команды в диалоге Автозапуск. Если у вас есть подходящая иконка, укажите путь к ней. Мы же укажем значение shell32.dll.34 (то есть значок с идентификатором 34, расположенный в библиотеке shell32.dll).
  • InvokeProgID. Определяет название подраздела в корневом разделе HKCR, в котором будет описана команда, запускаемая нашим событием. Например, назовем наш подраздел именем CpyTo.MY.
  • InvokeVerb. Определяет идентификатор команды в нашем подразделе CpyTo.MY. Например, пусть будет команда open.
  • Provider. Необходимо указать провайдер, который выполнит нашу команду. Поскольку собственного провайдера у нас нет, воспользуемся стандартным и запишем строку @%SystemRoot%system32shell32.dll,-17411.

Рис. 3

Идем дальше. В параметре InvokeProgID мы указали, что подразделом нашей команды будет CpyTo.MY. Пришла пора создать его. С учетом введенных нами значений для параметров InvokeProgID и InvokeVerb, нам необходимо создать ветвь реестра HKCRCpyTo.MYshellopencommand, после чего в параметре (по умолчанию) данной ветви реестра указать команду, которая будет выполнена при выборе нашего элемента диалога Автозапуск. Например, для копирования содержимого диска можно воспользоваться командой cmd.exe /k xcopy /S %1*.* c:tmp*.*. Общий итог наших действий представлен на рис. 3.

Чтобы было проще понять и воспользоваться данным примером, давайте приведем REG-файл всех выполненных нами действий.

REGEDIT4

[HKEY_LOCAL_MACHINESOFTWARE MicrosoftWindows CurrentVersionexplorerAutoplay HandlersEventHandlers UnknownContentOnArrival]

«MyTEST»=»»

[HKEY_LOCAL_MACHINESOFTWARE MicrosoftWindows CurrentVersionexplorerAutoplay HandlersHandlersMyTEST]

«Action»=»copy to»

«DefaultIcon»=»shell32.dll.34»

«InvokeProgID»= «CpyTo.MY»

«InvokeVerb»=»open»

«Provider»= «@%SystemRoot%\system32\shell32.dll,-17411»

[HKEY_CLASSES_ROOTCpyTo. MYshellopencommand]

@=»cmd.exe /k xcopy /S %1*.* c:\tmp\*.*»

 

Parad0x

Avatar photo
Robo User
Web-droid редактор

Не пропустите интересное!

Підписывайтесь на наши каналы и читайте анонсы хай-тек новостей, тестов и обзоров в удобном формате!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читайте також Read more




Статьи & тестыArticles

Обзор смартфона Oppo A6 Pro: амбициозный Oppo A6 Pro (CPH2799)

Новый смартфон Oppo A6 Pro — телефон среднего уровня с функциональностью смартфонов премиум-класса. Производитель наделил его множеством характеристик, присущих более дорогим телефонам. Но не обошлось и без компромиссов. Как именно сбалансирован Oppo A6 Pro – расскажем в обзоре.


Выбор редакции 2025. Лучшие устройства года по версии hi-tech.ua best devices 2025

Лучшие игровые ноутбуки, мышки для работы, клавиатуры для игр, смартфоны и беспроводные наушники 2025 года. Среди них мы отметим самые интересные и те что можем рекомендовать купить.  


НовостиNews
| 16.52
Лучшие игры 2025 года по версии Steam   
Steam

В течение 2025 года в Steam вышло почти 20 тысяч новых игр — на момент подготовки материала их число достигло 19 705.

| 13.04
В 2025 году было украдено криптовалюты на $2,7 млрд
cryptocurrency крипто валюта

Самым громким инцидентом года и одновременно новым антирекордом стала кража криптовалюты на сумму около 1,4 млрд долларов с биржи Bybit