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

на главную

Жанры

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

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

Шрифт:

[version]

Signature = $CHICAGO$

AdvancedINF=2.5,"Эта строка будет выводиться, если на компьютере не найдено библиотеки advpack.dll"

[DefaultInstall]

RunPreSetupCommands = RunPre

BeginPrompt=BeginText

EndPrompt=EndText

[RunPre]

cmd.exe

[BeginText]

Prompt="Это пример текста, который выведется перед
установкой"

Title="Это заголовок для сообщения, которое выведется перед установкой"

[EndText]

Prompt="Это пример текста, который выведется после установки"

Блок для описания сообщения, выводимого перед установкой INF-файла (в данном случае BeginText) содержит следующие ключевые слова.

■ Prompt — определяет саму строку выводимого сообщения.

■ Title — указывает заголовок окна сообщения. Следует учитывать, что данный заголовок будет использоваться не только для окна сообщения, отображаемого перед установкой, но и для окна сообщения, отображаемого после установки. 

Дополнительные возможности

Выше были рассмотрены лишь основы работы с INF-файлами. Кроме приведенных ключевых слов, INF-файлы поддерживают многие другие, но если начать их описывать, то понадобится отдельная книга. Закончим на этом рассказ о ключевых словах INF-файлов. Теперь рассмотрим несколько примеров не совсем стандартного использования INF-файлов. Без описания этих примеров рассказ о возможностях INF-файлов был бы не полон.

Работа с диалогом Установка и удаление программ

Одной из интересных возможностей INF-файлов является возможность их использования как для добавления команды в диалог Установка и удаление программ, так и для выполнения процесса деинсталляции при помощи диалога Установка и удаление программ. Рассмотрим простой пример использования INF-файлов для создания так называемого зацикленного элемента диалога Установка и удаление программ, который применяется для включения и отключения возможности автоматического запуска дисков. Принцип работы приведенного ниже сценария прост. При первом своем вызове он копирует себя в папку %systemroot%\INF, отключает автоматический запуск дисков, а также добавляет возможность включения автоматического запуска дисков в диалог Установка и удаление программ. После удаления данного INF-файла с помощью диалога Установка и удаление программ происходит включение автоматического запуска дисков, а также создание в диалоге Установка и удаление программ новой строки, с помощью которой можно опять отключить автоматический запуск диска. Другими словами, создается постоянный цикл. Конечно, пример с изменением значения одного параметра довольно спорен, ведь намного проще было бы добавить свой флажок в один из стандартных диалогов Windows, поддерживающих добавление в свои списки новых элементов. Но если необходимо при установке параметра также выполнять какие-либо команды или модифицировать сразу несколько параметров (например, создать несколько разновидностей настройки оболочки Windows, а потом переходить между ними), то данный способ использования INF-файлов может быть незаменим (рис. 15.1).

Рис. 15.1. Создание команды в диалоге Установка и удаление программ

Листинг 15.12. Создание цикла в диалоге Установка и удаление программ

[version]

Signature = $CHICAGO$

[DefaultInstall]

AddReg = AutoRunOff, InstallInf

CopyFiles = INFcopy

;Ниже мы используем переменную %PATH% для указания изменяемой ветви реестра.

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

;установке 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. Строки имеют следующий формат:

Поделиться:
Популярные книги

Мимик нового Мира 13

Северный Лис
12. Мимик!
Фантастика:
боевая фантастика
юмористическая фантастика
рпг
5.00
рейтинг книги
Мимик нового Мира 13

Идеальный мир для Лекаря 15

Сапфир Олег
15. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 15

Адепт: Обучение. Каникулы [СИ]

Бубела Олег Николаевич
6. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.15
рейтинг книги
Адепт: Обучение. Каникулы [СИ]

Ты всё ещё моя

Тодорова Елена
4. Под запретом
Любовные романы:
современные любовные романы
7.00
рейтинг книги
Ты всё ещё моя

Враг из прошлого тысячелетия

Еслер Андрей
4. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Враг из прошлого тысячелетия

Возвышение Меркурия. Книга 7

Кронос Александр
7. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 7

Книга пяти колец

Зайцев Константин
1. Книга пяти колец
Фантастика:
фэнтези
6.00
рейтинг книги
Книга пяти колец

Кодекс Охотника. Книга XIII

Винокуров Юрий
13. Кодекс Охотника
Фантастика:
боевая фантастика
попаданцы
аниме
7.50
рейтинг книги
Кодекс Охотника. Книга XIII

Вперед в прошлое 3

Ратманов Денис
3. Вперёд в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 3

Идущий в тени 4

Амврелий Марк
4. Идущий в тени
Фантастика:
боевая фантастика
6.58
рейтинг книги
Идущий в тени 4

Кодекс Охотника. Книга VI

Винокуров Юрий
6. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга VI

Кодекс Охотника. Книга XII

Винокуров Юрий
12. Кодекс Охотника
Фантастика:
боевая фантастика
городское фэнтези
аниме
7.50
рейтинг книги
Кодекс Охотника. Книга XII

Мимик нового Мира 7

Северный Лис
6. Мимик!
Фантастика:
юмористическое фэнтези
постапокалипсис
рпг
5.00
рейтинг книги
Мимик нового Мира 7

Сыночек в награду. Подари мне любовь

Лесневская Вероника
1. Суровые отцы
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Сыночек в награду. Подари мне любовь