Автозапуск компакт-дисков

Расскажите, пожалуйста, как создавать компакт-диски с автозапуском — какие параметры используются для этого в файле AUTORUN.INF, и есть ли программы для облегчения работы с этим файлом?

Действительно, для того, чтобы сделать компакт-диск с автозапуском, то есть такой диск, при установке которого в привод CD-ROM автоматически запускается какая-либо заданная при создании диска программа (обычно — инсталлятор) или же открывается заранее определённый документ (инструкция по установке программы или использованию диска), применяется специальный конфигурационный файл 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\CurrentVersion\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\CurrentVersion\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, то «умолчальная» команда этого контекстного меню берётся из значения этого параметра. То есть можно принудительно указать системе, какую команду ей следует выполнять, задав при этом новую, пользовательскую команду. Эта же команда выполняется, если пользователь делает двойной клик левой кнопкой мыши на значке диска. При создании новой команды необходимо определить две вещи: её глагол (verb), и указать саму командную строку, которая будет выполнена при выборе этой команды. Можно также вместо короткого глагола выбрать специальное название, которое будет отображаться в контекстном меню. Если же не устанавливать параметр 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]

Все остальные параметры следует располагать ниже, каждый на своей строке. Разумеется, создано немало и простых утилит и очень мощных программ для создания не только этого файла, но и удобных для пользователя меню, появляющихся при установке диска в привод. Достаточно упомянуть очень известную программу Autoplay Menu Studio (http://www.indigorose.com) — на её выходе получается не только готовый AUTORUN.INF, но и специальная оболочка диска — обычный EXE-файл с несколькими вполне понятными и симпатичными кнопками-командами, каждая из которых будет вызывать одну из программ на диске, открывать какой-либо документ или даже требовать ввод пароля для доступа к файлу. Из более доступных программ могу предложить взглянуть на бесплатный Autorun.inf Maker (http://www.ashzfall.com/products/autorun/) — проще него ничего уже быть не может.

Вопросы и ответы по теме

У меня перестал почему-то работать автозапуск для компакт-дисков, хотя я ничего в настройках системы последнее время не менял. Где искать причину «глюка»?

Во-первых, посмотрите в свойствах привода CD-ROM, включён ли флажок Auto Insert Notification («Автоматическое распознавание диска»). Затем проверьте с помощью утилиты TweakUI, включён ли режим Autorun («Автозапуск») — флажок, отвечающий за это, расположен на вкладке Paranoia — там он называется Play data CDs automatically. Включение автозапуска соответствует такому параметру в реестре:

[HKEY_CURRENT_USER]
"NoDriveTypeAutoRun"=hex:95,00,00,00

Если всё включено, но автозапуск не работает — то, возможно, вы отключили Рабочий Стол программой типа WinBoost. Когда вы включите его опять и нажмёте в появляющемся обычно после сбоев диалоге кнопку «Восстановить Рабочий Стол», то всё должно заработать.


У меня такой случай. После инсталляции программы с самозагружающегося CD произошло необычное превращение значка диска С: в нечто с ярлыком типа листка. При нажатии левой кнопки мышки на диск C: она пишет, что не может найти setup. Если нажать на правую кнопку мышки, то в выпадающем меню появляется строка «Автозапуск». Тот диск, из-за которого всё произошло, загрузить невозможно, т.к. отдали. Помогите, пожалуйста, очень необходимо. Форматировать диск не имеем возможности, т.к. много служебных программ.

Разумеется, форматировать ничего не нужно — проблема эта решается очень быстро. Просто найдите в корне жёсткого диска файл autorun.inf и удалите его.


Я что-то намудрил в настройках Windows, и система перестала видеть привод компакт-дисков — что делать?

Во-первых, убедитесь, что в файлах Autoexec.bat и Config.sys отсутствуют DOS-драйвера для CD-ROM, затем в «Свойствах системы» удалите привод компакт-дисков и перегрузите Windows — всё должно заработать.


Я только что прикупил себе привод CD-RW, очень доволен, но многое мне пока ещё не совсем понятно — все эти ISO, Joliet и прочая китайская грамота. Хотелось бы поподробнее разобраться с технологией записи компакт-дисков, узнать тонкости и трюки этого процесса, найти полезные программы. Не подскажете, где можно найти хорошую документацию по этому вопросу?

Отличный огромный FAQ по записи компакт-дисков вы найдёте на сайте members.tripod.com/greatkorzhik/cdrfaq.htm — это русский вариант. Англоязычный же оригинал находится по адресу www.cdrfaq.org — в нём освещены практически все вопросы, возникающие у новичков при работе с CD-RW, а также немало такой информации, которую знает не каждый профессионал этого дела.


Как программно отключить CD-ROM под Windows 9x, а затем программно его включить, чтобы дети не баловались? Если удалить устройство в Cвойствах системы, то при перезагрузке начинает работать Plug&Play, и оно снова появляется.

С помощью всё тех же программ WinBoost2000 или TweakUI вы спрячете от посторонних глаз любой диск.


Расскажите, пожалуйста, что такое SmartDrive, и где его взять?

Это драйвер для кэширования дисков в режиме MS-DOS, нужен для ускорения работы операционной системы с жёстким диском или CD-ROM. Он имеется в составе и MS-DOS, и Windows (смотрите папку C:\Windows — файл smartdrv.exe). Подробнее об этом драйвере (да и о других командах и драйверах MS-DOS) вы узнаете из статей на сайте www.syc.k12.pa.us/doshelp.


Как программно снизить скорость 50-скоростного CD хотя бы до 8-ми??? Давно ношусь с этим вопросом, но на различных конфах и в журналах это мало обсуждается, и мнения кардинально разные. И вот недавно, по-моему в «Апгрейде» (потому как читаю только «Компьютерру» и «Апгрейд» и подозреваю, что в «Компьютерре» решение подобной проблемы вряд ли обсуждалось), нашёл обстоятельный ответ на этот вопрос, но — о Боже! — куда-то подевался номер этого журнала.

Попробуйте Nero Drive Speed (www.ahead.de/en/download.htm) — эта небольшая утилита предназначена специально для снижения скорости привода.


В Windows 2000 после удаления программ Adaptec Easy Creator 5.01 и DirectCD стал недоступен CD-ROM из окна «My Computer». В менеджере устройств «Device Manager» присутствует сообщение об ошибке: «The device is not working properly because Windows cannot load the drivers required for this device (Code 31)», либо «A driver for this device was not required, and has been disabled (Code 32 or Code 31)», либо «Your registry might be corrupted. (Code 19)», либо выдается код ошибки 39 — «Driver is corrupted».

Для устранения проблемы попробуйте для начала удалить в списке устройств привод CD-ROM и переустановить его после перезагрузки системы. Если это не помогло, то удалите параметры UpperFilters и LowerFilters в разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\Current ControlSet\Control \Class\{4D36E965-E325-11CE-BFC1-08002BE10318} и перегрузите ПК. Если и это не помогло, то удалите Windows Media Player 7.0 и установите его свежую версию, которую можно взять на сайте www.microsoft.com/windows/windowsmedia.


Уважаемый Сергей! В одной из своих статей Вы упомянули о том, что отправляете «файл с ноутбука на сетевой CD-RW двумя щелчками мыши». Я давно пытаюсь добиться того же, но ни из-под CD Creator, ни из-под Nero, ни из-под WinCD удалённые CD-RW не видны! Может, это наивный вопрос, но объясните, пожалуйста, как у вас это получается?

Всё правильно, из-под этих программ сетевой CD-RW и не должен быть виден. Надо сделать так, чтобы запись могла осуществляться непосредственно из Проводника Windows, а такое возможно только в случае использования пакетного режима записи на удалённом ПК, то есть заранее форматированных CD-RW и утилит DirectCD, Nero InCD, PacketCD.




Темы