УЧЕБНИК ПО АВТОУСТАНОВКЕ WINDOWS


5.Выполнение INF-файла через Rundll32.exe - часть 3


Например, довольно распрастраненный режим Quiet | Backup (32+4) = 36.

Флаг перезагрузки:

Без данного флага используется Smart Reboot, т. е. перезагрузка по требованию.

 

A - Перезагрузка всегда

I - Тот самый Smart Reboot, по умолчанию стоит этот флаг

N - Не перезагружаться 

Пример с распаковкой INF из CAB:

rundll32.exe advpack.dll,LaunchINFSectionEx myinf.inf,,c:\temp\mydata.cab,36

Пример с откатом установки INF:

rundll32.exe advpack.dll,LaunchINFSectionEx c:\windows\inf\myinf.inf,,,256

Важно! При использовании в INF-файле инструкции Reboot и вызове через Rundll32 данного INF-файла, будет обработан режим перезагрузки, указанный в строке вызова через Rundll32.exe. Напомню, что в руководстве по INF-файлам написано:

Reboot= Флаг перезагрузки после выполнения пакета процедур. Этот флаг может быть отменён флагом вызова скрипта (через точку входа LaunchINFSectionEx)

Важно! Синтаксис описанных команд содержит запятые и пробелы. Не забывайте их ставить, иначе команда не сработает.

Важное замечание по синтаксису INF- скрипта. При вызове интерпретатора из INF-файла имеются различия вызова через setupapi.dll и advpack.dll. Вызов setupapi.dll должен осуществляться через инструкцию Run= , а вызов advpack.dll - только через RunPostSetupCommands=

Пример:

[DefaultInstall]

RunPostSetupCommands=Section.advpack

Run=Section.setupapi

[Section.advpack]

Rundll32.exe advpack.dll, LaunchINFSectionEx infname.inf, SectionToRun , , 4, 64

[Section.setupapi]

Rundll32.exe setupapi.dll, InstallHinfSection SectionToRun 132 infname.inf 

  • Использование RunOnce

Для запуска исполняемых файлов после того, как INF-файл исполнен, можно использовать RunOnce. Команды из RunOnce выполняются после перезагрузки или следующего входа в систему. Ключ регистрации RunOnce дает возможность выполнить файлы в "тихом" режиме (без подсказок пользователю) или в виде списка программ или действий ("Установка Windows устанавливает следующие элементы"), которые видит пользователь.После выполнения программ записи из RunOnce удаляются.

  • Для "тихого режима" добавляется путь к приложению в раздел реестра: HKLM, Software\Microsoft\Windows\CurrentVersion\RunOnce, "APPNAME", "APP_PATH"
  • Для режима с отображением установки в виде окна со списком устанавливаемых программ добавляется путь к приложению в раздел реестра: HKLM, Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup, "APPNAME", "APP_PATH"

"APPNAME" - во втором варианте будет отображатся в окне установки. 

К содержанию




Начало  Назад  Вперед