Программы и файлы Windows
Шрифт:
С помощью этого файла в реестр добавляется следующая информация:
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"
Ниже
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
В следующем примере показано, как с помощью inf-файла изменить содержимое ini-файла:
[Version]
Signature=$Chicago$
[DefaultInstall]
UpdateInis=ExampleAddINIfiles
;Указываете папку, где находится файл system.ini — например в папке Example, которая расположена в каталоге C:\Program Files
30,PROGRA~1\Example
[DestinationDirs]
ExampleAddINIfiles=30,PROGRA~1\Example
;Определяете название файла и секции добавляемых, удаляемых или заменяемых строк
[ExampleAddINIfiles]
;Добавляете в секцию [boot] файла system.ini строку shell=Example.exe
system.ini, boot,, "shell=Example.exe"
;Удаляете из секции [boot] файла system.ini строку shell=Example.exe
system.ini, boot, "shell=Example.exe"
;Заменяете из секции [boot] файла system.ini строку shell=Example.exe на shell=Example8.exe
system.ini, boot, "shell=Example.exe", "shell=Example8.exe"
С помощью inf-файлов можно также создавать/удалять ярлыки в меню Пуск. Ярлык можно создать в уже созданной группе программ. Если таковой не существует, она будет создана автоматически.
Следующий пример создает группу программ Windows + + в меню Пуск > Программы и ярлыки к утилитам winipcfg.exe (Конфигурация IP), Regedit.exe (Редактор реестра) и Winfile.exe (Диспетчер файлов — только в Win98). Все они есть у вас на компьютере и лежат в папке Windows.
[Version]
Signature=$Chicago$
[DefaultInstall]
UpdateInis=ExampleShortcut
;Определяете название и размещение ярлыков
[ExampleShortcut]
setup.ini, progman.groups,, "group1=""Windows + +"""
setup.ini, group1,, """Конфигурация IP"",""""""%30%\WINDOWS\winipcfg.exe"""""",,,,""%30%\WINDOWS"",""winipcfg.exe"""
setup.ini, progman.groups,, "group1=""Windows + +"""
setup.ini, group1,, """Редактор реестра"",""""""%30%\WINDOWS\Regedit.exe"""""",,,,""%30%\WINDOWS"",""Regedit.exe"""
setup.ini, progman.groups,, "group1=""Windows + +"""
setup.ini, group1,, """Диспетчер файлов"",""""""%30%\WINDOWS\Winfile.exe"""""",,,,""%30%\WINDOWS"",""Winfile.exe"""
Ярлык прописывается в таком порядке:
1. Название группы программ. В нашем случае — Windows + +.
2. Имя ярлыка.
3. Путь к программе, к которой создается ярлык.
4. Рабочий каталог, обычно тот же, что и путь. Некоторые программы не работают, если это условие не выполняется.
5. Имя программы с расширением.
Параметр %30%\ определяет корневой диск. Если вы хотите создать ярлык к файлу, который находиться в каталоге Program Files, смело прописывайте полный путь (не используйте короткие имена), например %30%\Program Files\Setup Generator Pro\Sgpro.exe.
Для удаления ярлыка нужно убрать все записи, указанные после имени ярлыка. В следующем примере удаляется ярлык Конфигурация IP из программной группы Windows + +.
[ExampleShortcut]
setup.ini, progman.groups,, "group1=""Windows + +"""
setup.ini, group1,, """Конфигурация IP"""
Если вы удаляете один из ярлыков программной группы, то удаление не затронет другие ярлыки. Для полного удаления программной группы нужно прописать данное действие для каждого ярлыка.