KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программное обеспечение » Роман Клименко - Недокументированные и малоизвестные возможности Windows XP

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

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Роман Клименко, "Недокументированные и малоизвестные возможности Windows XP" бесплатно, без регистрации.
Перейти на страницу:

[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 PanelDesktop", PaintDesktopVersion, 0x00010001, 1


[HTMUn]

DelReg = HTMDel


[VersUn] AddReg = VersDel


[HTMDel]

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


[VersDel]

HKCU, "Control PanelDesktop", PaintDesktopVersion, 0x00010001, 0

Формат INF-файла для создания компонентов в диалоге установки Windows немного отличается от обычного формата INF-файлов. Во-первых, основной блок INF-файла обязательно должен называться [Optional Components], иначе INF-файл работать не будет. Блок включает в себя список других блоков данного INF-файла. Каждый из описанных в [Optional Components] блоков определяет один раздел в диалоге установки компонентов Windows.

Блок описания раздела установки компонента содержит следующие ключевые слова.

■ OptionDesc — определяет название раздела, отображаемого в диалоге Установка компонентов Windows.

■ Tip — указывает подсказку для раздела, отображаемого в нижней части диалога Установка компонентов Windows.

■ Icon Index — определяет индекс значка, отображаемого напротив данного раздела в диалоге Установка компонентов Windows. Например, идентификатор 0 определяет значок компьютера, идентификатор 2 — монитора, 14 — принтера.

■ Parent — указывает название блока INF-файла, описывающего раздел, который будет родителем для нашего раздела в диалоге установки компонентов Windows. Если данное ключевое слово отсутствует, то наш раздел будет отображаться непосредственно в диалоге установки конфигурации Windows.

■ Uninstall — определяет блок INF-файла, вызываемый для данного компонента при установке созданного раздела (устанавливать можно только разделы, входящие непосредственно в список диалога установки компонентов (корневые), а не отдельно разделы, вложенные в корневой), если флажок напротив данного компонента будет снят.

В блоке установки компонента можно также пользоваться такими стандартными ключевыми словами, как AddReg, BitReg, DelReg, CopyFiles и т.д. Все блоки, описанные в этих ключевых словах, будут выполняться при установке флажка напротив соответствующего компонента.

Теперь добавим ссылку на наш компонент в файл sysoc.inf. Для того чтобы так сделать, необходимо в блок [Components] добавить строку следующего вида: hello=ocgen.dll, OcEntry, prim2.inf, , 7. Здесь test2 определяет идентификатор присоединяемого INF-файла, a prim.inf является названием самого присоединяемого файла. Стоит еще сказать, что созданный INF-файл должен находиться в каталоге %systemroot%inf.

ПРИМЕЧАНИЕ

В строке также указывается название библиотеки и функция из этой библиотеки, которая будет устанавливать наши компоненты. Как правило, нет никакой разницы между различными функциями различных библиотек. Главное, чтобы они умели работать с диалогом установки компонентов. Поэтому была выбрана первая попавшаяся в файле sysoc.inf библиотека и функция для нее. 

На рис. 15.3 показан результат добавления компонентов. 

Рис. 15.3. Создание разделов диалога

INF-файл для логического диска

Еще одной возможностью, которую предоставляют INF-файлы, является добавление в контекстное меню логических дисков своих команд, а также изменение значка логического диска. Для этого необходимо создать специальный файл, который должен называться autorun.inf. Созданный INF-файл необходимо поместить в корень логического диска. Рассмотрим пример создания файла autorun.inf.

Листинг 15.14. Пример создания файла autorun.inf

[autorun]

icon = E:imagesfotooArt_galeryp.BMP

shell = open

shellRunPhcommand = photoshop.exe

shellRunPh = Запустить photoshop

Файл autorun.inf не имеет блока версии INF-файла, но должен иметь блок [autorun]. Содержимое этого блока довольно просто в понимании, если вы прочитали главу 8 о корневом разделе HKEY_CLASSES_ROOT. Как можно заметить, ключевые слова, начинающиеся со слова shell, являются просто разделами реестра, которые должны быть добавлены к ветви HKEY_CLASSES_ROOTDrive при отображении контекстного меню данного логического диска, а ключевое слово icon определяет значок диска. Тем не менее вспомним содержимое корневого раздела HKEY_CLASSES_ROOTDriveshell и опишем, что же конкретно делают ключевые слова данного файла.

■ shell = open — добавляет в параметр (По ум олчанию) раздела shell строку open. Эта строка говорит о том, что по умолчанию при двойном щелчке на диске он должен открываться.

■ ShellRunPh = Запустить photoshop — добавляет в параметр (По умолчанию) раздела RunPh строку Запустить photoshop. Эта строка определяет название команды в контекстном меню нашего диска.

■ ShellRunPhcommand = photoshop.exe — добавляет в параметр (По умолчанию) раздела command строку photoshop.exe. Эта строка определяет команду, которая будет выполняться при выборе из контекстного меню нашего диска соответствующей команды. 

ПРИМЕЧАНИЕ

Для возможности работы файла autorun.inf необходимо, чтобы REG_BINARY-параметр NoDriveTypeAutoRun, расположенный в ветви реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer, был равен 0. 

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

Глава 16

Сервер сценариев Windows

При рассказе об инструментарии управления WMI уже рассматривались примеры создания сценариев сервера сценариев Windows с использованием WMI, сейчас же рассмотрим некоторые объекты, доступ к которым можно получить в Windows XP, а также методы для работы с ними. Глава будет оформлена как справочник, так как работа с объектами легче, чем работа с инструментарием WMI, тем более что в Интернете можно найти очень много примеров работы с объектами.

Реестр

Для доступа к реестру необходимо подключить объект WshShell. Для этого нужно воспользоваться следующим объявлением: Set имя_нового_объекта = WScript.CreateObject("WScript. Shell"). Объект поддерживает следующие методы.

■ RegRead(путь к ветви реестра и имя параметра) — считывает из реестра значение параметра, указанного в качестве входного значения. При этом если входное значение будет завершаться косой чертой (), то будет считываться значение по умолчанию данной ветви реестра. Следует также напомнить, что путь к ветви реестра должен начинаться не с полного названия корневого раздела, а с его аббревиатуры. Например, возможны следующие аббревиатуры:

 • HKCU — соответствует корневому разделу HKEY_CURRENT_USER;

 • HKLM — HKEY_LOCAL_MACHINE;

 • HKCR — HKEY_CLASSES_ROOT.

■ RegWrite путь к ветви реестра и имя параметра, значение параметра, тип параметра — редактирует значение существующего параметра реестра или создает новый параметр. При этом для его работы необходимо три входных значения, последнее из которых является аббревиатурой типа создаваемого параметра. Возможны следующие аббревиатуры:

 • REG_SZ — строковый параметр;

 • REG_DWORD — параметр REG_DWORD-типа;

 • REG_BINARY — параметр REG_BINARY-типа.

Как и в методе RegRead, если путь к создаваемому параметру будет заканчиваться косой чертой, то будет изменяться значение параметра (По умолчанию).

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*