Автозапуск по-взрослому 2
17.11.08Мой Компьютер, №11 (515), 28.07.2008
Все дополнительные команды по работе с содержимым носителей (помимо команд Не выполнять никаких действий, Спрашивать каждый раз и Открыть папку для просмотра файлов, используя Проводник) хранятся в параметрах строкового типа подразделов ветви реестра HKLMSoftwareMicrosoftWindowsCurrentVersionexplorerAutoplayHandlersEventHandlers.
Содержимое каждого выпадающего списка, отображаемого в мастере Автозапуск (а следовательно, и содержимое диалога Автозапуск для конкретного типа содержимого носителя), формируется отдельным дочерним подразделом данной ветви реестра. Основные из этих подразделов перечислены ниже.
-
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.
Содержимое выпадающего списка мастера Автозапуск формируется при помощи параметров строкового типа, расположенных в ветвях реестра вида HKLMSoftwareMicrosoftWindowsCurrentVersionexplorerAutoplayHandlersEventHandlers»подраздел выпадающего списка, описанный выше». Названия этих параметров определяются названиями подразделов ветви HKLMSoftwareMicrosoftWindowsCurrentVersionexplorerAutoplayHandlersHandlers. Именно при помощи подразделов данной ветви реестра определяется не только название действия в выпадающем списке, но и результаты применения соответствующего действия.
Теперь давайте перечислим названия основных подразделов ветви HKLMSoftwareMicrosoftWindowsCurrentVersionexplorerAutoplayHandlersHandlers.
-
EhomeMusicDropTarget. Команда Воспроизводить звуковой CD. По умолчанию данная команда отображается: «Звуковой CD», «Звуковой улучшенный CD».
-
MSOpenFolder. Команда Открыть папку для просмотра файлов. По умолчанию данная команда отображается во всех списках.
-
MSTakeNoAction. Команда Не выполнять никаких действий. По умолчанию данная команда отображается во всех списках.
-
MSPromptEachTime. Команда Спрашивать каждый раз. По умолчанию данная команда отображается во всех списках.
-
MSAutoRun. Команда Установить или выполнить программу. По умолчанию данная команда отображается для: «Звуковой улучшенный CD», «Программы и игры», «Звуковой улучшенный DVD».
-
EHomeVideosHandler. Команда Воспроизводить. По умолчанию данная команда отображается для: «Видеофайлы».
-
MSShowPicturesOnArrival. Команда Просмотреть изображения. По умолчанию данная команда отображается для: «Изображения».
-
EHomePhotosHandler. Команда Просмотреть. По умолчанию данная команда отображается для: «Изображения».
-
MSPhotoAcquireDropHandler. Команда Импортировать изображения. По умолчанию данная команда отображается для: «Видеофайлы», «Изображения».
-
MagicUSBCable. Команда Перенос файлов и параметров настройки.
-
MSDVDArrivalDvdMaker. Команда Записать видео-DVD. По умолчанию данная команда отображается для: «Чистый DVD».
-
MSPlayMediaOnArrival. Команда Воспроизводить.
-
MSSHAudioDevHandler. Команда Просмотреть музыкальные файлы.
-
MSVideoCameraArrivalCaptureWizard. Команда Импорт видео.
-
MSWPDNetworkConfigHandler. Команда Настройка устройства для сетевого доступа.
-
MSWPDShellNamespaceHandler. Команда Открыть устройство для просмотра файлов.
Итак, результат выбора определенного действия из диалога Автозапуск определяется при помощи параметров строкового типа ветви реестра HKLMSoftwareMicrosoftWindowsCurrentVersionexplorerAutoplayHandlersHandlers»идентификатор команды выпадающего списка». Ниже перечислены основные из этих параметров.
-
Action. Содержит название действия, отображаемое в диалоге Автозапуск.
-
DefaultIcon. Определяет иконку, отображаемую в диалоге Автозапуск.
-
InvokeProgId. Содержит идентификатор действия, выполняемого при выборе данного элемента диалога Автозапуск. Само действие описывается в параметре (по умолчанию) ветви реестра HKCR»значение параметра InvokeProgId»shell»значение параметра InvokeVerb»command.
-
InvokeVerb. Определяет идентификатор конкретной команды, которая будет выполнена при выборе соответствующего действия из диалога Автозапуск.
-
Provider. Определяет программу или библиотеку, которая реализует возможность выполнения данной команды.
Чтобы лучше понять теоретическую часть, давайте рассмотрим два примера, которые могут вам пригодиться.
Пример 1: удаление лишних команд
Первый пример достаточно простой. Давайте попробуем удалить какие-либо команды из диалога Автозапуск. Например, на рис. 1 представлен достаточно милый диалог Автозапуск, страдающий только одной проблемой — лишним «весом».
Рис. 1 |
Зная себя, я с уверенностью могу сказать, что такие команды данного диалога, как Воспроизводить звуковой CD, Play CD Audio, а также все команды, добавленные iTunes, мне совершенно не нужны. А если они мне не нужны, тогда зачем на них постоянно смотреть? Давайте их уберем.
Рис. 2 |
Для этого достаточно отредактировать содержимое ветви реестра HKLMSOFTWAREMicrosoftWindowsCurrentVersionexplorerAutoplayHandlersEventHandlersPlayCDAudioOnArrival, в которой, как мы уже знаем, определяются команды, отображаемые в диалоге Автозапуск для звукового CD. В этой ветви реестра находится куча строковых параметров, из которых нужно оставить только MSPlayCDAudioOnArrival и MSRipCDAudioOnArrival. Остальные можно переименовать. В итоге наш диалог похудел настолько, насколько даже и не снилось тем людям, которые ходят со значками «Спроси меня, как я похудел» (рис. 2).
Пример 2: добавление своей собственной команды
Следующий пример будет посложнее. Мы попробуем добавить в диалог Автозапуск свою собственную команду. Например, давайте добавим команду, которая будет копировать все содержимое диска/носителя в каталог c:tmp. Наша команда будет отображаться для носителей с любым содержимым.
Если мы хотим, чтобы команда отображалась для любых носителей, ее событие нужно добавить к ветви реестра HKLMSOFTWAREMicrosoftWindowsCurrentVersionexplorerAutoplayHandlersEventHandlersUnknownContentOnArrival. Добавим к этой ветви реестра параметр строкового типа MyTEST.
После того, как мы добавили событие MyTEST, нам необходимо создать это событие. Для этого необходимо создать ветвь реестра HKLMSOFTWAREMicrosoftWindowsCurrentVersionexplorerAutoplayHandlersHandlersMyTEST, после чего создать в ней как минимум следующие параметры строкового типа.
-
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_MACHINESOFTWAREMicrosoftWindowsCurrentVersionexplorerAutoplayHandlersEventHandlersUnknownContentOnArrival]
«MyTEST»=»»
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionexplorerAutoplayHandlersHandlersMyTEST]
«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
Web-droid редактор
Не пропустите интересное!
Підписывайтесь на наши каналы и читайте анонсы хай-тек новостей, тестов и обзоров в удобном формате!
Видеонаблюдение от Ajax: обзор IP-камер DomeCam Mini, TurretCam, BulletCam и видеорегистратора NVR
Компания Ajax Systems продолжила расширение своей экосистемы устройств, представив камеры видеонаблюдения и видеорегистратор для управления видеопотоками. Достаточно консервативный и устоявшийся тип устройств, традиционно для компании подкрепили глубокой проработкой софта и комплектующих.
Новый Volkswagen Transporter будет выпускаться в электро и плагин-гибридной версии
Volkswagen автомобиль электротранспортМикроавтобус Volkswagen Transporter следующего поколения будет представлен в начале 2025 года.
Intel хочет заработать на производстве чипов для Министерства обороны США
Intel война процессор СШАХотя детали соглашения не разглашаются, существуют предположения, что Intel займется созданием чипов с искусственным интеллектом для военных дронов и вычислительных систем, использующих генеративный ИИ в разведке