САЙТ КРЫЛОВА ПАВЛА
Главная
Схемы Ветрогенераторы Собаки Стройка Книги О сельском хозяйстве и прочем


СХЕМЫ---->
Полезная схемотехника. статьи № 1-50

Автозапуск программ с USB-диска.

Д. ПАНКРАТЬЕВ, г. Ташкент, Узбекистан

Съемные USB-диски, наряду с высокими пользовательскими и технико-экономическими показателями, обладают все же и некоторыми недостатками. Общеизвестное неудобство при работе с такими носителями — невозможность автоматического запуска пользовательской программы при подключении диска к компьютеру (некорректная обработка файла autorun.inf на уровне операционной системы). В Windows ХР, например, предлагается ограниченный список действий, производимых ОС при подключении носителя: воспроизведение файлов мультимедиа, просмотр изображений, просмотр содержимого тома и некоторые другие. Автор рассказывает, как устранить этот недостаток.

Необходимость в автозапуске продиктована отнюдь не праздным интересом. На сегодняшний день все большее распространение получает размещение программных продуктов на съемных дисках, и каждый серьезный производитель программного обеспечения должен позаботиться о том, чтобы диск с его продуктом не стал носителем вирусов. Второе место, очевидно, следует отдать фактору удобства работы с программами (наличие графической оболочки, исключение необходимости поиска и ручного запуска программ). Наиболее простой и надежный способ выполнения этих требований — реализация функции автозапуска, которая фактически стала стандартной при выпуске программного обеспечения на CD.

В Интернете существуют множество ресурсов, посвященных реализации автозапуска. Все предлагаемые способы можно разделить на следующие группы:

1. Создание файла autorun.inf и размещение его в корневом каталоге съемного USB-диска [1, 2] . Теоретически это должно вызвать выполнение записанных в файле инструкций при подключении устройства, но на практике, как правило, приводит лишь к прекращению вывода на экран системного диалога выбора действия. При попытке произвести автозапуск из контекстного меню этот диалог все же выводится, но без какого-либо содержимого! Существуют программы генерации файла autorun.inf, например, Autorun.inf Maker for Windows 95/NT [3], а также конструкторы полноценных оболочек вроде AutoRun Express [4], но, как уже отмечено, наличие файла автозапуска само по себе не является достаточным условием реализации этой функции.



2. Использование дополнительного программного обеспечения, например, АРО USB Autorun [5] или BusRunner [6], обычно обеспечивает устойчивый автозапуск, но, естественно, требует предварительной установки этих программ в системе, с которой предполагается использовать USB-диск. Это жестко привязывает носитель к конкретному компьютеру и сводит на нет основное преимущество USB-диска — его мобильность.

Прежде чем рассматривать третий способ, вкратце рассмотрим правила составления файла автозапуска autorun.inf [1], поскольку его правильный формат — одно из необходимых условий реализации автозапуска. Первая строка файла всегда содержит его заголовок:
[autorun]

Каждая последующая строка имеет вид:

ПАРАМЕТР=ЗНАЧЕНИЕ

В системе Windows ХР могут быть использованы следующие параметры:

OPEN — задает программу, которая должна быть запущена автоматически;

ACTION — задает сообщение, выводимое в диалоге выбора действия; LABEL — назначает метку диска.

Группа параметров

SHELL\IDN=NAME

SHELL\IDN\COMMAND=START.EXE

добавляет пункт NAME в контекстное меню, при выборе которого будет выполняться программа

START.EXE (IDN — произвольный идентификатор пункта меню);

SHELL=IDN — определяет пункт контекстного меню по умолчанию;

SHELL=EXECUTE — определяет файл, открываемый соответствующим его типу приложением при автозапуске;

ICON — назначает значок для диска.

Значением может быть файл значка с расширением .ico либо файлы типов .ехе и .dll, содержащие значки. При наличии нескольких значков в файле после его названия указывают порядковый номер желаемого изображения, например, ICON=MOREICONS.DLL,3.

3. Представление USB-диска в системе как загрузочного жесткого диска, что заставляет систему работать с ним как со стационарным, а не съемным устройством. Это обеспечивает корректную обработку файла autorun.inf. Такая возможность упоминается очень редко [7] и рассматривается скорее как гипотетическая, однако именно она практически наиболее приемлема с учетом всего вышесказанного.

Еще недавно для создания загрузочного USB-диска требовалось преобразовать его файловую систему в FAT16, иметь в своем распоряжении загрузочную дискету и использовать программу создания загрузочных записей МАКЕВООТ или аналогичную в сеансе MS-DOS. Данный способ применим не для всех типов загрузочных секторов и USB-дисков, а потому не может быть рекомендован как универсальный.

Сегодня имеется возможность избавиться от этих недостатков, используя пакет программ USB Flash Disk MFC Utility http://www.pc.uz/files/autorunusb/usbdiskutil.zip объем архива — около 500 Кбайт), предназначенных для работы под Windows. В нем имеется программа FORMAT.EXE, предназначенная, как и следует из названия, для форматирования USB-дисков, но обладающая полезными дополнительными функциями, в частности, возможностью форматирования USB-диска как загрузочного.

Преобразованию в загрузочные поддаются USB-диски с файловой системой FAT16/FAT32 при условии их запуска в системе Windows 98. При отсутствии драйвера USB-устройства под эту ОС можно воспользоваться хорошо себя зарекомендовавшим универсальным драйвером Native USB Disk Driver v1.21, находящимся по адресу http://www.pc.uz/files/autorunusb/nusb21.zip (объем архива — около 1 Мбайт). Для англо- и русскоязычной версий Windows 98 SE соответственно в архиве имеются драйверы nusb21e.exe и nusb21r.exe. Перед установкой универсального драйвера необходимо удалить все, уже имеющиеся в системе, иные драйверы USB-дисков!

Подключив USB-диск к компьютеру, запускаем программу FORMAT.EXE. Убедившись, что программа опознала носитель и вывела его название в верхней строке открывшегося окна (оно показано на рисунке),

Автозапуск программ с USB-диска. Программа FORMAT.EXE

выбираем закладку "Configuration". На ней отмечаем пункты "Quick Format", "USB HDD Boot" и нажимаем на экранную кнопку "START FORMAT". Через несколько секунд, по окончании форматирования, программа выведет сообщение об этом. В корневом каталоге USB-диска появятся, как и положено, скрытые системные файлы IO.SYS, MSDOS.SYS и COMMAND.COM.

Следует отметить, что использование данного диска, именно как загрузочного, не всегда возможно, видимо, в силу специфики конкретных устройств или BIOS компьютера, но для решения рассматриваемой задачи это не имеет значения. После форматирования USB-носитель определяется в любой системе как локальный жесткий диск. Теперь необходимо записать в его корневой каталог файл autorun.inf, составленный в соответствии с рассмотренными ранее правилами, и обеспечить наличие на нем необходимых исполняемых файлов.

Обычно в этом файле достаточно трех строк:

[autorun]
OPEN=START.EXE
ICON=ICO.ICO

Последняя строка, задающая значок диска, очень желательна, поскольку устройство исчезает из списка съемных носителей и появляется в списке локальных дисков, которых в системе может быть несколько, быстро отыскать среди них необходимый пользователю, особенно неискушенному, бывает затруднительно.

После этого запуск программы start.exe становится действием ОС над USB-диском, выполняемым по умолчанию. Целесообразно, чтобы это была специально созданная программа, осуществляющая, например, последовательный запуск антивирусной проверки и оригинальной графической оболочки. При необходимости непосредственного доступа к содержимому диска можно воспользоваться пунктом "Открыть" контекстного меню.

Следует быть готовым к тому, что программное отключение ставшего загрузочным USB-диска в Windows ХР может оказаться не всегда возможным. Но это некритично, поскольку для него, как и для любого USB-устройства, остается разрешенным "горячее" отключение. Естественно, следует соблюдать элементарную осторожность, например, не отключать диск во время записи или чтения информации.

ЛИТЕРАТУРА

1. USB Drive AutoRun.inf Tweaking. — http://www.dailycupoftech.com/usb-drive-autoruninf-tweaking/

2. Visual Vision **User's** Forum. Topic: Autorun on USB drive. — http://www.paperinik.com/cgi-bin/eng/YaBB.pl?board=CDF;action = display;num=1086937446

3. Autorun.inf Maker. — http://www.ashzfall.com/products/autorun/

4. 1st AutoRun Express — start any program or document when your CD is inserted! — http://www.autoruntools.com/express/

5. APO USB Autorun. Add autorun to your USB drive. — http://www.snapfiles.com/get/usbautorun.html

6. BusRunner — AutoRun your USB Drive. — http://www.programurl.com/busrunner-autorun-your-usb-drive.htm

7. How to Boot From a USB Flash Drive. — http://www.bootdisk.com/pendrive.htm

От редакции. Упоминаемое в статье программное обеспечение для превращения USB-диска в загрузочный имеется на нашем FTP-сервере по адресу ftp://ftp.radio.ru/pub/2007/11/bootusb.zip

Радио №11 2007


altay-krylov@yandex.ru