Автоматизированный запуск компакт-дисков
Для того чтобы сделать компакт-диск с автозапуском, то есть такой диск, при установке которого автоматически запускается заданная при создании диска программа (обычно инсталлятор) или же открывается заранее определенный документ (инструкция по установке программы или использованию диска), применяется специальный конфигурационный файл autorun.inf, находящийся в корневой папке компакт-диска.
В этом файле прописан путь к запускаемой программе, путь к файлу значка, который должен отображаться в Проводнике для данного диска, а также еще ряд параметров, которые считываются и выполняются средствами Windows, если только функция автозапуска не запрещена в настройках ОС.
Запретить автозапуск CD-ROM можно двумя способами:
- с помощью диалога "Система: свойства", сняв флажок "Auto insert notification" в свойствах привода компакт-дисков; в реестре при этом пропишется специальный параметр в разделе, соответствующем модели вашего привода:
HKEY_LOCAL_MACHINE\Enum\SCSI\
QSI_____CD-ROM_SCR-242__C\
MF&CHILD0001&PCI&VEN_8086&
DEV_244A&SUBSYS_80DF104D&
REV_03&BUS_00&DEV_1F&
FUNC_0100
"AutoInsertNotification"=
hex:00
- либо с помощью наверняка уже давно известной читателям Upgrade утилиты TweakUI - флажки "Play audio CDs automatically" и "Play data CDs automatically" на вкладке "Paranoia"; в этом случае в реестре появится такая запись:
HKEY_USERS\.DEFAULT\SOFTWARE\
Microsoft\Windows\Current
Version\Policies\Explorer
"NoDriveTypeAutoRun"=
hex:b5,00,00,00
Кстати говоря, этот файл обычно работоспособен применительно и к жесткому диску - эта возможность иногда используется в качестве крайне неэлегантного способа смены значка жесткого диска, поэтому если у вас вдруг иконка диска приобрела какие-то левые очертания, либо в его контекстном меню появились посторонние команды, просто найдите в корневой директории файл autorun.inf и удалите его.
Можно сделать и так, что даже с флоппи-дисками будет работать автозапуск - для этого достаточно в не менее известной среди грамотных пользователей программе WinBoost 2001 Gold на странице "Miscellaneous 2" установить флажок "Enable Autorun for Disk Drive" либо прописать вручную в реестре параметр:
HKEY_USERS\.DEFAULT\SOFTWARE\
Microsoft\Windows\Current
Version\Policies\Explorer
"NoDriveTypeAutoRun"=
hex:91,00,00,00
Исходное же значение этого параметра, при котором автозапуск работает только для привода CD-ROM, таково: "NoDriveTypeAutoRun"=
hex:95,00,00,00
Итак, если в вашей системе автозапуск не отключен, то можно поэкспериментировать с созданием оригинальных дисков, отлично подходящих для передачи недостаточно опытным в компьютерном деле друзьям и знакомым.
Всего возможных команд файла autorun.inf совсем немного:
Icon
Defaulticon
Label
Open
Shellexecute
Shell
shell\verb
Рассмотрим их поподробнее.
Команда icon задает файл значка, который будет отображаться в Проводнике Windows (и некоторых других программах) вместо стандартного "виндового", ее синтаксис таков: icon=iconfile[,index]. Как источник значка (iconfile) могут использоваться файлы нескольких типов: ico, bmp, exe, dll.
Файл со значком должен располагаться в той же директории на диске, что и программа, автозапуск которой задан командой open в файле autorun.inf. Если файл содержит более одной иконки, то необходимо указывать еще и индекс значка (индекс иконок в файлах отсчитывается от нуля).
Пример:
icon=МояПрога.exe,1
Команда Defaulticon отличается лишь тем, что позволяет задавать еще и путь к файлу значка:
defaulticon=iconpath[,index]
В случае использования двух команд - icon и defaulticon система обрабатывает только defaulticon.
Команда label задает наименование диска, которое будет отображаться в интерфейсе Windows вместо стандартного названия диска. В качестве этого названия может быть любой текст с пробелами, конечно, разумной длины: label=Это мой кул-диск!!!
Команда open задает путь и имя файла программы, который будет автоматически запущен операционной системой при установке диска в привод CD-ROM.
Ее синтаксис: open=[exepath\]exefile [param1 [param2]...]
Если путь к файлу (exepath) не указан явным образом, то файл запускаемой программы должен находиться в корневой директории компакт-диска. Вы также можете указывать любые переключатели командной строки для выбранного приложения, разумеется, если программа поддерживает такие переключатели и в них есть потребность: open=C:\Windows\explorer.exe /n,/e,C:
Команда shellexecute задает приложение или файл с данными, которые будут использоваться операционной системой при вызове функции ShellExecuteEx.
Синтаксис:
shellexecute=[filepath\]filename[param1, [param2]...]
Если путь к файлу (filepath) не указан явным образом, то файл также должен находиться в корневой директории компакт-диска. Если в данном параметре указывается исполнимый файл, то он будет запущен, если же это документ или файл с данными, то ShellExecuteEx выполнит команду, ассоциированную в системе с данным классом файлов. То есть, грубо говоря, это то же самое, что и команда open, но shellexecute позволяет автоматически открывать документы с помощью соответствующих им приложений: shellexecute=
ReadMe.doc.
Команда shell определяет команду в контекстном меню данного диска, используемую системой по умолчанию: shell=verb.
Здесь verb соответствует глаголу, выбранному для команды, задаваемой в нижеописанном параметре shell\verb файла autorun.inf. Как это выглядит на практике, если говорить понятнее? Когда пользователь щелкает правой кнопкой мыши на значке диска, то появляется контекстное меню.
Если на диске присутствует файл autorun.inf и в нем указан параметр shell, то умолчальная команда этого контекстного меню берется из значения этого параметра. То есть можно принудительно указать системе, какую команду ей следует выполнять, задав при этом новую, пользовательскую команду.
Эта же команда выполняется, если пользователь делает двойной клик левой кнопкой мыши на значке диска. При создании новой команды необходимо определить две вещи: ее глагол (можно также вместо короткого глагола выбрать специальное название, которое будет отображаться в контекстном меню) и указать саму командную строку, которая будет выполнена при выборе этой команды.
Если же не устанавливать параметр shell, то операционная система будет считать командой по умолчанию "AutoPlay" и запускать при щелчке по значку диска программу, указанную в параметре open.
Для создания новой пользовательской команды контекстного меню используется команда shell\verb\command. Ее синтаксис: shell\verb\command=
[filepath\]Filename.exe
Здесь verb - придуманный для вашей команды короткий глагол, не содержащий пробелов. По умолчанию именно этот глагол отображается в контекстном меню в качестве команды. Если же необходимо поместить в контекстное меню достаточно длинную строку, содержащую пробелы, то для замены глагола verb используется следующая необязательная команда:
shell\verb=MenuText
При этом в контекстном меню будет отображаться текст MenuText, который в отличие от обязательного глагола может содержать пробелы, строчные и прописные буквы. Также в этом случае можно самостоятельно задать горячую клавишу для данной команды, проставив амперсанд (&) перед выбранной для этого буквой.
Пример:
shell=readme
shell\readme\command=
notepad readme.txt
shell\readme=Read &Me First!
Кстати, подобных дополнительных команд в контекстное меню диска можно добавлять несколько, задавая разные глаголы и разный текст MenuText.
Таким образом, создание компакт-дисков с автозапуском ручным способом - редактированием файла autorun.inf в Блокноте - более чем простое занятие, не требующее никаких особых навыков.
Главное - не забывать, что в файле autorun.inf первой строкой обязательно должна идти запись: [autorun].
Все остальные параметры следует располагать ниже, каждый на своей строке.
P.S. Данный материал подготовлен по материалам Upgrade