Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Секреты Windows: статьи о реестре, rundll32.exe, программах Недокументированные возможности Windows XP. Реестр. Часть 3


Другие наши рассылки:
  • Новости IT-мира: Ежедневно ссылки на новости и статьи сайтов ixbt.com, thevista.ru, xakep.ru, securitylab.ru, oszone.ru, inattack.ru, ht.ua, overclockers.ru, центр загрузки Microsoft, softportal.com, realcoding.net, 3dcenter.ru, ladoshki.com, smti.ru, seonews.ru, ibm.com и др.
  • Рецензии на новые книги: Описание новых книг о компьютерах, дизайне, бухгалтерии, психологии и др. направлениях мысли человечества.

Продолжение, начало в выпусках: 21 23

Книга "Недокументированные возможности Windows XP. Библиотека пользователя", Глава 2. Реестр Windows XP. Часть 3. Другие подразделы корневого раздела.

Как видите, сведения о расширениях файлов хранятся в реестре в виде упорядоченных данных (чего, к сожалению, нельзя сказать о других корневых разделах реестра, структура которых если и прослеживается, то только в некоторых местах).

Но не только сведения о расширениях файлов содержатся в корневом разделе HKEY_CLASSES_ROOT — также в нем хранятся сведения обо всех установленных на компьютере ActiveX-объектах и некоторые другие подразделы, описанием которых мы сейчас и займемся.

CLSID

В данной главе книги уже несколько раз упоминалось о таких объектах Windows, как ActiveX, но еще ни слова не говорилось о том, что же это такое и для чего оно необходимо. Но теперь мы восполним этот пробел, ведь сейчас начнется рассказ о структуре подраздела CLSID, который как раз и содержит в себе сведения об ActiveX-объектах.

ActiveX-объекты, это специальные, уже скомпилированные, программы, доступ к которым нельзя получить напрямую, но их можно вызвать с помощью операционной системы Windows. Всем известными примерами ActiveX-объектов могут быть следующие значки: МОЙ КОМПЬЮТЕР, МОИ ДОКУМЕНТЫ, КОРЗИНА, НАЗНАЧЕННЫЕ ЗАДАНИЯ, ПАНЕЛЬ УПРАВЛЕНИЯ и т.д.

Каждый ActiveX-объект имеет свой уникальный идентификатор, называемый CLSID-номером, который служит в системе в качестве названия ActiveX-объекта. CLSID-номера не берутся с головы — для их создания предназначены специальные программы. Например, программа guidgen, входящая в стандартную поставку компилятора Microsoft Visual C++ 6.0.

CLSID-номер является 32-байтным номером, состоящим из шестнадцатеричных чисел, первые восемь байт которого генерируются случайным образом. Следующие четыре байта используют для своего создания текущее значение даты и времени, а остальные генерируются на основе конфигурационных данных компьютера. При этом CLSID-номер берется в фигурные кавычки и имеет такой формат написания: {XXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}.

Перечень CLSID-номеров наиболее интересных ActiveX-объектов можно просмотреть в приложении к данной книге.

Параметры подраздела ActiveX-объекта Подраздел CLSID содержит в себе список вложенных подразделов, каждый из которых назван на основе CLSID-номера ActiveX-объекта, который он описывает, и содержит сведения только об этом ActiveX-объекте. Подраздел ActiveX-объекта может содержать в себе следующие параметры.

Параметр по умолчанию подраздела определяет дружественное название ActiveX-объекта, предназначенное для отображения в качестве имени значка или команды. Например, если изменить параметр по умолчанию для ActiveX-объекта {645FF040-5081-101B-9F08-00AA002F954E} (значок КОРЗИНА), тогда изменится и само название корзины, отображаемое под ее значком. А если изменить значение параметра по умолчанию ActiveX-объекта {21EC2020-3AEA-1069-A2DD-08002B30309D}, тогда изменится заголовок и адрес панели управления при ее отображении (рис. 2.05).

Рисунок 1 Рис. 2.05. Изменение названия панели управления

Если вам необходимо изменить имя сетевого клиента (по умолчанию это имя равно Microsoft Windows Network, но можно изменить его на любое другое, например, Моя сеть), которое можно найти по такому пути: Сетевое окружение/Вся сеть. Тогда ActiveX-объект сетевого клиента вам не поможет. Данное имя считывается из параметра строкового типа Name ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\NetworkProvider — именно этот параметр и нужно изменять.

  • LocalizedString. Данный параметр используется в Windows для локализации операционной системы и содержит в себе название ActiveX-объекта, заменяющее собой название из параметра по умолчанию.
  • SortOrderIndex. Данный параметр DWORD-типа может присутствовать в некоторых из подразделов ActiveX-объектов, отображаемых на рабочем столе. Например, в подразделах ActiveX-объектов МОЙ КОМПЬЮТЕР, МОИ ДОКУМЕНТЫ и КОРЗИНА. Он определяет порядок расположения этих ActiveX-объектов на рабочем столе.
  • InfoTip. Данный параметр строкового типа определяет строку подсказки, отображаемую для значка соответствующего ActiveX-объекта при наведении и удержании на нем указателя мыши.

Подразделы ветви ActiveX-объекта Кроме параметров, подразделы, описывающие ActiveX-объекты, могут содержать в себе множество дочерних подразделов. Среди этих подразделов могут присутствовать и уже рассмотренные нами подразделы SHELL и SHELLEX, но их мы больше рассматривать не будем. Давайте лучше рассмотрим некоторые из тех подразделов, которые мы еще не описывали.

DefaultIcon Параметр по умолчанию данного подраздела определяет путь к файлу рисунка, применяемому для отображения значка ActiveX-объекта (например, данный параметр ActiveX-объекта {20D04FE0-3AEA-1069-A2D8-08002B30309D} определяет значок для МОЕГО КОМПЬЮТЕРА).

Также данный подраздел может содержать в себе параметр строкового типа OPENICON, который определяет путь к файлу рисунка, используемому вместо стандартного рисунка значка открытого ActiveX-объекта. На рисунке 2.06 можно увидеть результат изменения этого параметра для приведенного выше ActiveX-объекта {20D04FE0-3AEA-1069-A2D8-08002B30309D}.

Рисунок 2 Рис. 2.06. Изменение значка в панели заголовка Моего компьютера

Значение приведенного выше, (а также некоторых других параметров, которые будут описаны) параметра может быть переопределено в ветви реестра HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\EXPLORER\CLSID\{CLSID-НОМЕР ACTIVEX-ОБЪЕКТА}.

ShellFolder Параметры данного подраздела определяют различные свойства значка ActiveX-объекта, а также его команд контекстного меню. Данный подраздел может содержать следующие параметры.

  • WANTSFORDISPLAY — присутствие данного параметра строкового типа запрещает системе выводить название соответствующего ActiveX-объекта под значком к нему. Например, если создать данный параметр строкового типа в ветви реестра {645FF040-5081-101B-9F08-00AA002F954E}, тогда можно добиться такого же эффекта, как и на рисунке 2.07.
  • Рисунок 3 Рис. 2.07. Скрытие названия значка корзины

  • HIDEINWEBVIEW — присутствие данного параметра строкового типа говорит системе о том, что она должна скрывать значки, соответствующие данному ActiveX-объекту, при использовании нового вида окна проводника (при установленном переключателе ОТОБРАЖЕНИЕ СПИСКА ТЕКУЩИХ ЗАДАЧ на вкладке ОБЩИЕ диалога СВОЙСТВА ПАПКИ).
  • HIDEFOLDERVERBS — присутствие данного параметра строкового типа говорит системе о том, что она не должна добавлять к контекстному меню значка ActiveX-объекта команды контекстного меню стандартного идентификатора FOLDER. Существует и противоположная возможность — сказать системе, что она обязана добавить к контекстному меню данного ActiveX-объекта команды, определяемые идентификатором FOLDER. Для этого необходимо установить битовую маску 0х20000000 в параметре DWORD-типа ATTRIBUTES, описание которого приведено ниже.
  • ATTRIBUTES — значение данного параметра DWORD-типа определяет, будут ли отображаться различные стандартные команды контекстного меню для значка данного ActiveX-объекта. Данный параметр является битовой маской, биты которой имеют следующую функциональность: 0х00000001 — определяет присутствие команды КОПИРОВАТЬ; 0х00000002 — определяет присутствие команды ВЫРЕЗАТЬ; 0х00000010 — определяет команду ПЕРЕИМЕНОВАТЬ; 0х00000020 — определяет команду УДАЛИТЬ; 0х00000040 — определяет отображение команды СВОЙСТВА; 0х00000100 — определяет отображение команды ВСТАВИТЬ; 0х00200000 — определяет отображение команд, содержащихся в подразделе CONTEXTMENUHANDLERS (данный подраздел является дочерним к подразделу SHELLEX, который, в свою очередь, располагается в одном из подразделов идентификаторов); Например, на рисунке 2.08 отображено контекстное меню значка КОРЗИНА с использованием значения параметра ATTRIBUTES, равного 0х20000030.
  • Рисунок 4 Рис. 2.08. Редактирование контекстного меню значка Корзина

Также в подразделе SHELLFOLDER может присутствовать параметр DWORD-типа CALLFORATTRIBUTES. Если значение этого параметра отлично от 0, то система не будет использовать содержимое параметра ATTRIBUTES для ограничения контекстного меню значка данного ActiveX-объекта.

Это далеко не все подразделы, которые могут содержаться в ветви ActiveX-объекта, но это самые интересные из них (с точки зрения возможностей изменения). О других подразделах ветви ActiveX-объекта можно узнать в базе данных по реестру, поставляемой вместе с данной книгой.

Другие подразделы корневого раздела

Мы с вами уже рассмотрели большую часть содержимого корневого раздела HKEY_CLASSES_ROOT — подразделы расширения, подразделы идентификатора и подраздел CLSID, но кроме этих подразделов данный корневой раздел содержит еще несколько подразделов, которые стоит описать. Это будет не долго, тем более, что некоторые из описываемых ниже параметров реализуют уникальные возможности, которые в Windows больше никакими другими способами изменить нельзя.

.DeskLink Данный подраздел реализует возможность создания ярлыков на рабочем столе с помощью команды контекстного меню файлов ОТПРАВИТЬ. Он содержит в себе описание ActiveX-объекта, предназначенного специально для выполнения этой операции. Если удалить или переименовать этот подраздел, то соответствующая возможность будет запрещена.

Applications Данный подраздел корневого раздела HKEY_CLASSES_ROOT определяет список программ, которые будут отображаться в диалоге ОТКРЫТЬ С ПОМОЩЬЮ… Он содержит в себе подразделы, названные в честь соответствующих программ — если подраздел присутствует, тогда диалог ОТКРЫТЬ С ПОМОЩЬЮ… будет содержать в себе возможность открытия файла с помощью этой программы.

Также подраздел APPLICATIONS имеет и противоположную описанной выше функции возможность — он определяет те программы, которые никогда не будут отображаться в диалоге ОТКРЫТЬ С ПОМОЩЬЮ… Если программа не должна отображаться в диалоге, тогда в дочернем подразделе подраздела APPLICATIONS, названном в честь данной программы, нужно создать параметр строкового типа NOOPENWITH. Значение этого параметра не используется.

А можно еще создать строковой параметра NOSTARTPAGE. Если в дочернем подразделе подраздела APPLICATIONS, названном в честь данной программы, будет находиться приведенный строковой параметр, тогда сколько бы вы не вызывали соответствующую программу, она не будет отображаться в списке часто используемых программ нового меню ПУСК.

И еще один параметр строкового типа, который может содержаться в подразделе подраздела APPLICATIONS, названном в честь необходимой программы — TASKBARGROUPICON. Значение данного параметра строкового типа содержит в себе путь к файлу рисунка, который будет использоваться в качестве значка сгруппированных программ на панели задач. Например, давайте создадим данный параметр в ветви реестра HKEY_CLASSES_ROOT\APPLICATIONS\EXPLORER.EXE и посмотрим, что у нас получилось (Рис. 2.09).

Рисунок 5 Рис. 2.09. Изменение рисунка группы программ

Но кроме параметров подраздел APPLICATIONS может содержать в себе и другие подразделы. Например, в нем может находиться подраздел SHELL, содержащий в себе дополнительные глаголы (или переопределение уже существующих) для файлов, ассоциированных с соответствующей программой уже после того, как будет изменено содержимое подраздела SHELL ветви HKEY_CLASSES_ROOT\APPLICATIONS\«ПРИЛОЖЕНИЕ».

Кроме подраздела SHELL в некоторых подразделах ветви реестра HKEY_CLASSES_ROOT\APPLICATIONS могут содержаться и другие подразделы. Например, в ветви HKEY_CLASSES_ROOT\APPLICATIONS\EXPLORER.EXE может содержаться подраздел DRIVES. С помощью этого подраздела можно переопределить файлы рисунков, применяемые в качестве значков логических дисков — для этого достаточно в подразделе DRIVES создать вложенный подраздел, название которого соответствует букве диска, значок которого нужно изменить, а в созданном подразделе нужно создать еще один подраздел — DEFAULTICON. Параметр по умолчанию этого подраздела как раз и определяет значок, используемый для отображения данного диска. Например, чтобы сменить значок диска h:\, нужно изменить параметр по умолчанию ветви реестра HKEY_CLASSES_ROOT\APPLICATIONS\EXPLORER.EXE\DRIVES\H\DEFAULTICON.

MIME Данный подраздел содержит в себе сведения обо всех типах MIME, зарегистрированных на компьютере. Описание всех этих типов находится в ветви реестра HKEY_CLASSES_ROOT\MIME\DATABASE\CONTENT TYPE, содержащей в себе список подразделов, названных в честь соответствующего типа (AUDIO/BASIC, IMAGE/BMP, TEXT/PLAIN и т.д.). Данные подразделы могут содержать в себе следующие параметры:

  • CLSID — определяет CLSID-номер сервера ActiveX, который будет обслуживать данный тип;
  • Extension — определяет расширение файла, которое использует данный тип MIME;
  • Encoding — данный параметр BINARY-типа определяет код для кодировки данных MIME;

AppID Данный подраздел предназначен для определения настроек удаленной активации и зашиты для различных ActiveX-объектов, описанных в подразделе CLSID. Как и подраздел CLSID, подраздел APPID содержит список вложенных подразделов, названных в честь конкретного CLSID-номера ActiveX-объекта. О параметрах и подразделах этих ветвей реестра мы рассказывать не будет. Тем не менее, если эта тема для вас интересна, тогда в базе данных по реестру, поставляемой вместе с данной книгой, содержатся сведения о параметрах и подразделах данной ветви реестра.

Продолжение следует

Оригинал статьи: http://www.onestyle.com.ua/txt.php?u=111

В избранное