Чтение онлайн

ЖАНРЫ

Недокументированные и малоизвестные возможности Windows XP

Клименко Роман

Шрифт:

;Переменная – это специальная последовательность символов, которая при 

;установке INF-файла будет преобразовываться в строку, определенную для нее

;в стандартном блоке [Strings] (обычно этот блок располагается в самом низу

;INF-файла). Использование переменных позволяет улучшить читабельность

;INF-файлов большого размера, а также предоставляет разработчику возможность

;цетрализованного хранения всех информационных и других строчек программы.

;Иными словами, вместо того чтобы искать необходимую для изменения строку

;по всему содержимому INF-файла,
он может описать ее в блоке [Strings]

[AutoRunOff]

HKLM, %PATH%, AutoRun, 0x00010001, 0

;Добавляем строку в диалог Установка\удаление программ. В первой главе

;мы кратко рассматривали формат этого диалога.

[InstallInf]

HKLM, %DISPLAY% autorunOnOff,,,

HKLM, %DISPLAY% autorunOnOff, DisplayName,,%NAME_ON%

HKLM, %DISPLAY% autorunOnOff, UninstallString,,\"rundll32 setupapi, InstallHINFSection DefaultUninstall 132 %17%\primer.INF"

[DefaultUninstall]

AddReg = AutoRunOn

[AutoRunOn]

HKLM, %PATH%, AutoRun, 0x00010001, 1

HKLM, %DISPLAY% autorunOnOff, DisplayName,,%NAME_OFF%

HKLM, %DISPLAY% autorunOnOff, UninstallString,,\"rundll32 setupapi, InstallHINFSection DefaultInstall 132 %17%\primer.INF"

[INFcopy]

primer.INF

[DestinationDirs]

INFcopy = 17

[SourceDisksFiles]

primer.INF = 55

[SourceDisksNames]

55 = %DISKNAME%, , 1

;Описывает переменные, используемые в INF-файле

[Strings]

PATH = "SYSTEM\CurrentControlSet\Services\Cdrom"

DISPLAY = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"

NAME_ON = "Восстановить автоматический запуск дисков"

NAME_OFF="Отключить автоматический запуск дисков"

DISKNAME = "parad0x-des1Gn"

Диалог установки компонентов Windows

Отдельной частью окна Установка и удаление программ является диалог Установка компонентов Windows, который вызывается нажатием соответствующей кнопки. Как правило, данный диалог включает в себя сведения не обо всех компонентах Windows, доступных на компьютере. Например, с его помощью нельзя удалить с компьютера стандартные игры, такие как Сапер или Паук. Это происходит потому, что по умолчанию возможность удаления или установки игр скрыта из диалога установки компонентов Windows. Список содержимого диалога Установка компонентов Windows описывается в файле sysoc.INF, расположенном в каталоге %systemroot%\INF. Данный файл включает в себя блок INF-файла [Components]. Блок содержит наборы строк, определяющих, будет ли отображаться в диалоге отдельный компонент операционной системы Windows XP. Строки имеют следующий формат:

идентификатор»=«библиотека для работы компонентов», «функция библиотеки», «INF-файл, описывающий компоненты»,«отображение компонентов»,«номер»

Следующие элементы являются наиболее важными.

■ INF-файл, описывающий компоненты — описывает разделы, отображаемые в диалоге Установка и удаление программ. Именно такой INF-файл сейчас и будет создан.

■ Отображение компонентов — если в данном поле будет стоять слово HIDE, то данный компонент не будет

отображаться в диалоге дополнительных компонентов Windows. Чтобы компонент отображался в диалоге, необходимо чтобы это поле было пустым.

■ Например, чтобы добавить в диалог компонентов возможность удаления игр, необходимо в строке, начинающейся с идентификатора games, удалить строку HIDE.

На рис. 15.2 показан пример содержимого этого файла.

Рис. 15.2 .Содержимое файла sysoc.INF

Другой возможностью является добавление в данный диалог своих компонентов. Для этого необходимо сначала создать INF-файл, описывающий новые компоненты, а потом создать в файле sysoc.inf ссылку на созданный INF-файл. Сначала посмотрим на простой пример INF-файла. В этом примере сразу создается корневой раздел, отображаемый непосредственно в диалоге установки компонентов Windows, два вложенных в этот раздел подраздела, а также еще два раздела, которые и будут устанавливать или удалять компоненты. В нашем случае эти разделы будут просто скрывать (или отображать, в зависимости от состояния флажка) версию Windows на Рабочем столе, а также скрывать (или отображать) название значка Мой компьютер.

Листинг 15.13. Создание разделов в диалоге компонентов

[version]

signature="$Chicago$"

[Optional Components]

TopMain

Interface

Settings

HTMcomputer

Versus

[TopMain]

OptionDesc = Мои настройки

Tip = Варианты настройки интерфейса и конфигурации

IconIndex = 0

[Interface]

OptionDesc = Интерфейс Windows

Tip = Варианты настройки интерфейса

IconIndex = 4

Parent = TopMain

[Settings]

OptionDesc = Конфигурация Windows

Tip = Варианты настройки конфигурации компьютера

IconIndex = 16

Parent = TopMain

[HTMcomputer]

OptionDesc = Скрыть название моего компьютера

Tip = Скрывает название значка Мой компьютер

IconIndex = 0

Parent = Interface

AddReg = AddHTM

Uninstall = HTMUn

Modes = 0,1,2,3

[Versus]

OptionDesc = Отобразить версию на Рабочем столе

Tip = отображает версию операционной системы на Рабочем столе пользователя

IconIndex =4

Parent = Interface

AddReg =AddVersion

Uninstall =VersUn

Modes = 0,1,2,3

[AddHTM]

HKCR, "CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\ShellFolder", WantsFORDISPLAY, 0x00010001, 1

[AddVersion]

HKCU, "Control Panel\Desktop", PaintDesktopVersion, 0x00010001, 1

[HTMUn]

Поделиться с друзьями: