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


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


INF-файл можно выполнить путем вызова из коммандной строки через системную библиотеку Rundll32.exe (также в Win98 Rundll.exe). Кроме того, Rundll32 можно вызывать прямо из INF-файла, используя RunPreSetupCommands и RunPostSetupCommands (например, вызвать секцию из другого или текущего INF-файла).

  • Вызов через интерпретатор Setupx.dll (setupapi.dll)

Синтаксис:

RunDll32.exe setupx.dll, InstallHinfSection <section> <reboot-mode> <inf-name>

RunDll32.exe setupapi.dll, InstallHinfSection <section> <reboot-mode> <inf-name>

1. <section> - Исполняемая секция

2. <reboot-mode> - Флаг перезагрузки

3. <inf-name> - имя и путь к inf- файлу

После такого вызова в INF-файле setupx.dll повторно ее вызывать нельзя, так как это может привести к перезагрузке или другим неприятным последствиям. Для многократных вызовов из файла интерпретатора лучше использовать RunOnce (см.ниже).

Имя исполняемой секции: если секция с таким именем не будет найдена, то ничего не будет "выполняться", и сообщений об ошибках тоже не будет.

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

Интерпретатор понимает следующие значения этого параметра:

NeverReboot                  0 или 128 - не перезагружать компьютер.

AlwaysSilentReboot      1 или 129 - обязательно (и без вопросов) перезагружать компьютер.

AlwaysPromptReboot   2 или 130 - спросить у пользователя, перезагружать компьютер или нет.

SilentReboot                   3 или 131 - определить, надо или нет перезагружать компьютер. Если оказалось, что перезагружать надо, то выполнить перезгрузку (без вопросов).

PromptReboot                4 или 132 - определить, надо или нет перезагружать компьютер. Если оказалось, что перезагружать надо, то спросить у пользователя, перезагружать компьютер или нет.




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



Книжный магазин