Вкл\Выкл свет
Расширенные INF‑файлы
Основные сведения

Расширенные INFфайлы отличаются от обычных одной строкой, которую нужно добавить в блок [version]. Ниже приведен пример блока версии для расширенного INF‑файла.

Для работы с расширенными INFфайлами необходима библиотека advpack. dll, по умолчанию расположенная в каталоге %systemroot%. Если перед началом выполнения расширенного INFфайла система не найдет данной библиотеки, то она выведет сообщение, указанное в ключевом слове AdvancedINF после запятой. К тому же, как известно, расширенные INFфайлы вызываются с помощью команды rundll32.exe ADVPACK. dll, LaunchINFSectionEx «имя файла», «имя раздела», «имя cab‑файла», «флаг». Тогда как обычные INF‑файлы вызываются с помощью следующей команды: rundll32.exe setupapi. dll, InstallHINFSection «раздел в файле для начала установки», «флаг», «путь и имя файла».

Запуск программ до и после установки

Расширенные INF‑файлы поддерживают такую возможность, как запуск команд перед установкой INF‑файла или после нее. При этом для указания блока, описывающего программы, запускаемые перед установкой INF‑файла, используется ключевое слово RunPreSetupCommands. Для указания блока, описывающего программы, запускаемые после установки INF‑файла, используется ключевое слово RunPostSetupCommands. Посмотрим на пример использования этих ключевых слов.

Листинг 15.10. Запуск программ до и после установки INF‑файла

Приведенный в листинге 15.10 INF‑файл перед своей установкой вызывает Калькулятор, а потом – стандартный командный интерпретатор Windows. После своей установки он вызовет диалоговое окно с вопросом о перезагрузке компьютера. Конечно, это окно принадлежит Internet Explorer, но зато оно работает.

ПРИМЕЧАНИЕ

Вопрос о перезагрузке компьютера можно было вызвать и с помощью флагов вызова INF‑файла, но в листинге специально были использованы команды rundll32.exe.

Не забывайте также, что данный INF‑файл не выполнится после выбора команды Установить контекстного меню INF‑файла. Для его установки придется воспользоваться командой RunDll32 advpack. dll, LaunchINFSection d:\1.INF, DefaultInstall. Здесь d:\1.INF соответствует пути к INF‑файлу и его названию.

Вывод сообщения перед установкой

Перед установкой INF‑файла или после нее можно вывести окно сообщения с произвольным текстом. Диалог сообщения, выводимый перед установкой, позволяет эту установку отменить. Он содержит две кнопки – OK и Отмена. Если нажать кнопку Отмена, то установка INF‑файла будет отменена. Диалог сообщения, выводимый после установки, является информационным и имеет только одну кнопку – OK.

Чтобы вывести диалоговое окно перед установкой, необходимо воспользоваться ключевым словом BeginPrompt (окно сообщения будет выведено до вызова программ, описанных ключевым словом RunPreSetupCommands), а чтобы вывести окно сообщения после установки, нужно воспользоваться ключевым словом EndPrompt. В листинге 15.11 приведен простой пример использования как окна сообщения, выводимого перед установкой, так и окна сообщения, выводимого после установки.

Листинг 15.11. Вывод окна с произвольным текстом

Блок для описания сообщения, выводимого перед установкой INF‑файла (в данном случае BeginText) содержит следующие ключевые слова.

■ Prompt – определяет саму строку выводимого сообщения.

■ Title – указывает заголовок окна сообщения. Следует учитывать, что данный заголовок будет использоваться не только для окна сообщения, отображаемого перед установкой, но и для окна сообщения, отображаемого после установки.

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Всего комментариев: 0
Имя *:
Email *:
Код *: