DelFiles = INFdel
;мы будем удалять файл vfolder.INF
[INFdel]
vfolder.INF
;теперь данный блок указывает не каталог, в который копируются файлы,
;а каталог, из которого удаляются файлы, описанные в блоке
[DestinationDirs]
INFdel = 17
[SourceDisksFiles]
vfolder.INF = 55
[SourceDisksNames]
55 = "имя диска", , 1
Создание ярлыка файл в меню Пуск
Это еще одна возможность, которой можно воспользоваться благодаря INF-файлу. С помощью ключевого слова ProfileItems можно определить блок INF файла, в котором описывается создаваемый в меню Пуск ярлык. Рассмотрим пример, с помощью которого создается ярлык программы Восстановление системы в меню Пуск (Стандартные►Служебные).
[version]
Signature="$CHICAGO$"
[DefaultInstall]
ProfileItems=SRProfile
[SRProfile]
Name="Восстановление системы"
CmdLine=11,restore,rstrui.exe
SubDir="Стандартные\Служебные"
InfoTip="Это подсказка, отображаемая при наведении указателя на ярлык"
DisplayResource="%systemroot%\system32\restore\rstrui.exe",2048
ProfileItems=SRProfile
Блок для описания ярлыка в меню Пуск может содержать следующие ключевые слова.
■ Name — определяет название создаваемого в меню Пуск ярлыка.
■ CmdLine — указывает путь к программе, для которой создается ярлык. Формат данного ключевого слова немного необычен: «числовой путь к стандартному каталогу, размещение файла, название файла».
■ SubDir — определяет расположение ярлыка в меню Пуск. Если точнее, то данное ключевое слово определяет дальнейший путь к каталогу, который будет содержать ярлык на программу. Дальнейший путь добавляется к пути %systemdrive%\Documents and Settings\All Users\Главное меню\Программы.
■ WorkingDir — указывает рабочие каталоги для программы, на которую создается ярлык (как правило, это ключевое слово не указывается).
■ InfoTip — определяет подсказку, отображаемую при наведении указателя на созданный в меню Пуск ярлык.
Расширенные INF-файлы
Расширенные INFфайлы отличаются от обычных одной строкой, которую нужно добавить в блок [version]. Ниже приведен пример блока версии для расширенного INF-файла.
[Version]
Signature="$CHICAGO$"
AdvancedINF=2.5,"Эта строка будет выводиться, если на компьютере не найдено библиотеки advpack.dll"
Для работы с расширенными 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. Посмотрим на пример использования этих ключевых слов.
[version]
Signature = $CHICAGO$
AdvancedINF=2.5,"Эта строка будет выводиться, если на компьютере не найдено библиотеки advpack.dll"
[DefaultInstall]
RunPreSetupCommands=RunPre
RunPostSetupCommands=RunPost
[RunPre]
calc.exe
cmd.exe
[RunPost]
"rundll32.exe IEAKENG.dll, DoReboot"