Выбрать главу

UpdateIniFields — изменение областей в .ini-файлах;

AddReg — добавление информации в реестр;

DelReg — удаление информации из реестра;

Ini2Reg — перемещение строки или секции в ini-файлах;

UpdateCfgSys — изменение файла Config.sys;

UpdateAutoBat — изменение файла Autoexec.bat.

Этим параметрам в качестве значения присваивается имя секции с файлами. Например:

[DefaultInstall]

CopyFiles=CopyHtml

[CopyHtml]

Example.html ;файл для копирования...

[DestinationDirs] ;Секция расположения каталогов

DestExampleFiles=10 ;Каталог назначения (т.е. копировать в папку Windows)

Чуть ниже представлены цифровые обозначения специальных папок, применяемые в .inf-файлах:

10 — C:\WINDOWS;

11 — C:\WINDOWS\System;

12 — C:\WINDOWS\SYSTEM\IOSUBSYS;

13 — C:\WINDOWS\COMMAND;

17 — C:\WINDOWS\Inf;

18 — C:\WINDOWS\Hlp;

20 — C:\WINDOWS\FONTS;

21 — C:\WINDOWS\SYSTEM\VIEWERS;

22 — C:\WINDOWS\SYSTEM\VMM32;

23 — C:\WINDOWS\SYSTEM\COLOR;

30 — Корневой загрузочный диск (обычно C:\).

Например, если нужно скопировать файл в папку Web, которая находится в каталоге Windows, сделайте это так:

[DestinationDirs]

DestExampleFiles=10,WEB

Так же можно поступить и с другими папками, находящимися в определенных каталогах.

Параметр CopyFiles содержит имя секции, где находятся имена файлов для копирования с исходного диска в папку назначения. Папка назначения определяется в секции [DestinationDirs] inf-файла. В следующем примере копируются два файла:

[Version]

Signature=$Chicago$

[DefaultInstall]

Copyfiles=ExampleCopyFiles ;секция может быть названа как угодно

[SourceDisksNames]

1="Имя диска","",1

;Перечисляете файлы, которые содержатся на диске

[SourceDisksFiles]Example.exe=1

Example.vxd=1

;Перечисляете файлы для копирования (о цифрах через три запятые читайте ниже)

[ExampleCopyFiles]

Example.exe,,,1

Example.vxd,,,1

;Указываете папку, в которую будут копироваться файлы (10 — Windows)

[DestinationDirs]

ExampleCopyFiles=10

Цифры через три запятые обозначают дополнительные флаги при копировании файлов и могут принимать значения, представленные в

Параметр CopyFiles может копировать файл непосредственно из строки. Для этого перед именем файла нужно поставить символ @. В следующем примере копируются два текстовых файла:

CopyFiles=@myfile.txt, @anotherfile.txt

Параметр RenFiles содержит секции, которые в свою очередь содержат имена файлов для переименования. Папка, где будет происходить переименование, должна быть определена в секции [DestinationDirs] inf-файла. В следующий примере происходит переименование двух файлов из .bmp в .txt:

[Version]

Signature=$Chicago$

[DefaultInstall]

RenFiles=ExampleRenameOldFiles

[SourceDisksNames]

1="Имя диска","",1

;Перечисляете старые имена файлов

[SourceDisksFiles]

Example1.bmp=1

Example2.bmp=1

;Определяете файлы, которые будут переименовываться

[ExampleRenameOldFiles]

Example1.txt, Example1.bmp

Example2.txt, Example2.bmp

;Указываете папку, в которой будут переименовываться файлы (10 — Windows)

[DestinationDirs]

ExampleRenameOldFiles=10

В параметре AddReg указываются секции, которые содержат информацию о добавлении или изменении ключей, значений в реестре. Следующий пример регистрирует вашу копию операционной системы Windows.

[Version]

Signature=$Chicago$

[DefaultInstall]

AddReg=ExampleAddRegistry

;Определяете информацию, которая будет добавлена в реестр

[ExampleAddRegistry]

HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion", "RegDone",,"1"

HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\ Welcome\RegWiz","@",,"1"

С помощью этого файла в реестр добавляется следующая информация:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion

"RegDone"="1"

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Welcome\RegWiz

"@"="1"

Обратите внимание на запятые в inf-файле. Если нужно добавить в реестр параметр по умолчанию, запятые должны быть проставлены иначе. Например, в рассмотренном нами ключе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion сделаем параметр по умолчанию равным единице (1):

HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion",,,"1"

Ниже представлены корневые имена реестра, применяемые в inf-файлах.

HKCR — HKEY_CLASSES_ROOT;

HKCU — HKEY_CURRENT_USER;

HKLM — HKEY_LOCAL_MACHINE;

HKU — HKEY_USERS;

HKR — относительный ключ, используется классом installer; обычно применяется для дисков устройства.

В параметре DelReg указываются секции, которые содержат информацию об удалении подключей с параметрами и значениями из реестра. Следующий пример демонстрирует удаление подключа Graphviz со всеми параметрами и значениями этого раздела реестра — HKEY_CURRENT_USER\Software\AT&T\Graphviz:

[Version]

Signature=$Chicago$

[DefaultInstall]

DelReg=ExampleDelRegistry

;Определяете информацию, которая будет удалена из реестра

[ExampleDelRegistry]

HKLM, "HKEY_CURRENT_USER\Software\AT&T\Graphviz"

Корневые имена реестра, естественно, обозначаются так же, как и при добавлении информации в реестр.

В процессе установки можно прервать выполнение .inf-файла для показа пользователю какого-нибудь документа (после закрытия которого установка продолжится) или запустить определенный процесс. Следующий пример отображает файл справки About.hlp и текстовый файл About.txt, после чего запускает другой inf-файл — Example.inf:

[Version]

Signature=$Chicago$

[DefaultInstall]

AddReg=ExampleView

;Отображение файла справки About.hlp

[ExampleView]

HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,%ABOUT%,,"WINHLP32.EXE — Main %1%\About.hlp"

;Отображение текстового файла About.txt

HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,%ABOUT%,,"notepad %1%\About.txt"

;Запуск файла сценария Example.inf

HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,%ABOUT%,,"rundll setupx.dll,InstallHinfSection DefaultInstall 132 %1%\Example.inf"

;Определяете название, которое будет отображаться в окне "Установка Windows 98"

[Strings]

ABOUT="О программе..."

После того как определенные в секции [ExampleView] команды выполнятся, записи, добавленные в реестр, будут автоматически удалены из него. Таким образом можно запускать и другие процессы, например апплеты Панели управления:

;Запуск апплета Панели управления Свойства: Система (SYSDM.CPL)

HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,%ABOUT%,,"rundll32