Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Всё о работе в Интернет" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Секреты Windows: статьи о реестре, rundll32.exe, программах Недокументированные возможности Windows XP. Реестр. Часть 1
Уважаемые подписчики, на нашем сайте (http://www.onestyle.com.ua) организован опрос, тема которого: 'Содержимое какой из книг вы бы хотели прочитать в будущих статьях на нашем сайте?'. Голосуйте на сайте за одну из книг, содержимое которой вы хотели бы видеть в номерах данной рассылки. Другие наши рассылки:
Новости нашего сайта: Книга "Недокументированные возможности Windows XP. Библиотека пользователя", Глава 2. Реестр Windows XP. Часть 1. HKEY_CLASSES_ROOT. Реестр Windows — это большая база данных, содержащая в себе сведения обо всех настройках операционной системы. Будь то настройка цвета окна или пароль пользователя для входа в систему — все, вплоть до самой маленькой галочки самого маленького диалогового окна, все хранится в реестре Windows. Так уж получилось, что в Windows XP реестр реализован в виде набора файлов, доступ к которым можно получить только программным путем. Мы не будем сейчас касаться содержимого этих файлов — это не является главной темой книги. Также мы не будем описывать работу с программами для доступа к реестру — данная глава предназначена для тех, кто уже имеет некоторый опыт в использовании реестра. Но, несмотря на это, хотелось напомнить некоторые сведения для тех, кто уже забыл, как работать с реестром (но имеет опыт работы с ним — иначе стоит купить отдельную книгу, посвященную именно этой теме). Итак, начнем. Для доступа к реестру в Windows XP применяется стандартная программа операционной системы regedit.exe, расположенная в каталоге %systemroot%. После ее запуска перед вами отобразится окно, состоящее из двух областей — в левой области отображаются ветви реестра, а в правой — содержащиеся в них параметры и их значения. Ветви реестра не произрастают из ничего, они имеют определенную точку монтирования — папку МОЙ КМПЬЮТЕР. При этом стоит сказать, что от точки монтирования отходит пять ветвей (ни больше, ни меньше), называемых корневыми разделами, и делящих содержащуюся в реестре информацию на определенные категории. Давайте кратко опишем эти корневые разделы.
Как уже было сказано, правая панель редактора реестра содержит в себе сведения о содержащихся в открытой в данный момент ветви реестра параметрах: их названия, тип и значение. Параметры реестра в regedit.exe могут иметь следующие типы данных (имеется в виду, что редактор реестра может создавать данные типы параметров, на самом же деле типов параметров намного больше):
В основном, нет никакой разницы между типами параметров реестра, поэтому вместо типа REG_DWORD можно создавать параметры типа REG_BINARY, вместо REG_SZ можно создавать параметры типа REG_EXPAND_SZ и т.д. Битовая маска, это название способа описания значения параметров типа REG_DWORD и REG_BINARY, при котором отдельно описывается результат установки каждого бита данного параметра. Например, в данной книге можно встретить абзацы, в которых будет содержаться подобный текст:
Приведенный абзац можно расшифровать так: если первый бит параметра будет установлен, то ОПИСАНИЕ1, если второй бит параметра будет установлен, тогда ОПИСАНИЕ2, если третий бит параметра установлен, тогда ОПИСАНИЕ3 и т.д. При этом следует еще сказать, что в параметре может быть установлено сразу несколько битов, в этом случае выполняемое им действие определяется суммой соответствующих описаний. Битовая маска не только упрощает описание сложных параметров (по аналогии со способ их описания, мы эти параметры также будем называть битовыми масками), но и позволяет легко установить отдельные биты параметра. Например, чтобы установить все приведенные выше биты параметра, нужно записать в данный параметр значение, равное 1 + 2+4+8+10+20 = 7 + 38 = 3F (расчет ведется в шестнадцатеричной системе счисления). А теперь давайте начнем рассматривать описание наиболее интересных параметров реестра. И первым корневым разделом, структуру которого мы рассмотрим, будет корневой раздел HKEY_CLASSES_ROOT. Хотя, если быть точным, содержимое этого раздела строится на основе двух ветвей других корневых разделов: HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES и HKEY_CURRENT_USER\SOFTWARE\CLASSES. Первая ветвь реестра содержит в себе информацию о расширениях файлов, используемую для построения карты расширений для всех пользователей компьютера. Вторая же ветвь реестра содержит в себе информацию о расширениях, которые либо используются только текущим пользователем, либо переопределяют собой информацию из ветви корневого раздела HKEY_LOCAL_MACHINE. То есть, если информация о каком-нибудь расширении содержится как в корневом разделе HKEY_LOCAL_MACHINE, так и в HKEY_CURRENT_USER, то сведения из этих ветвей будут объединяться. При этом сведения из ветви HKEY_CURRENT_USER будут заменять собой сведения из ветви HKEY_LOCAL_MACHINE. Корнеевой раздел HKEY_CLASSES_ROOT имеет более-менее статичную структуру. Если остальные корневые разделы могут содержать в себе любую информацию, какую только захотят поместить в них программисты (любое название параметра и любой путь, ведущий к этому параметру), то данный корневой раздел содержит в себе параметры, названия которых не зависят от прихотей программистов, которые разрабатывали соответствующее расширение файла или ActiveX-объект. Как уже говорилось выше, корневой раздел HKEY_CLASSES_ROOT содержит в себе всю информацию о расширениях файлов, которые зарегистрированы в вашей системе, а также описывает те действия, которые вы можете сделать с файлами данного расширения (команды контекстного меню). Также данная ветвь реестра содержит в себе сведения обо всех зарегистрированных в системе ActiveX-компонентах, но о них мы поговорим чуть позже, а сейчас давайте разберемся с хранением сведений о расширениях файлов. Расширения файлов
Есть два способа хранения в реестре информации о расширении файлов — правильный и не очень. Второй из них применялся в старых версиях операционной системы Windows, хотя поддерживается и Windows XP. При его использовании все параметры и дочерние подразделы записываются в один раздел корневого раздела HKEY_CLASSES_ROOT. То есть, все то, что мы будет рассматривать далее в этой статье, при использовании неправильного способа хранения будет содержаться в одном подразделе корневого раздела HKEY_CLASSES_ROOT. Правильный же способ хранения параметров расширения файла определяет для их хранения два подраздела. Первый из подразделов назван в честь расширения файла, например, для файлов с расширением .txt он будет называться .TXT. Этот подраздел еще называют подразделом расширения. Он практически ничего интересного не содержит, но зато в параметре по умолчанию он содержит название второго раздела. Вот этот раздел реестра как раз и содержит в себе всю интересную и увлекательную информацию о расширении. Этот подраздел еще называется подразделом идентификатора. Мы с вами будем рассматривать параметры и дочерние подразделы, используемые в регистрации расширения с помощью правильного способа. Но сначала давайте посмотрим на рисунок 2.01. Этот рисунок показывает правильный способ хранения информации для файлов с расширением .txt. Рисунок 1 Рис. 2.01 Подразделы описания расширения файла Подраздел расширения Как мы уже говорили, подраздел расширения содержит в себе параметр по умолчанию, значение которого определяет название подраздела идентификатора, описывающего данное расширение. Но кроме параметра по умолчанию подраздел расширения может содержать в себе еще несколько параметров. Давайте кратко рассмотрим и их.
Также данный подраздел может содержать в себе дочерние подразделы. Например, в нем может храниться подраздел SHELLNEW. Этот подраздел определяет команды в списке СОЗДАТЬ контекстного меню рабочего стола или проводника. То есть, если подраздел расширения содержит данный дочерний подраздел (при этом в нем должен находиться один из описанных ниже параметров), то в списке СОЗДАТЬ появится пункт, с помощью которого можно будет создать файл с соответствующим расширением. Только что говорилось, что подраздел SHELLNEW должен содержать в себе определенный параметр. Этот параметр как раз и определяет, что именно система должна сделать после того, как пользователь выбрал соответствующую команду меню СОЗДАТЬ. Давайте рассмотрим эти параметры (внимание, в подразделе SHELLNEW должен находиться только один из этих параметров):
Давайте для примера попробуем создать свою собственную команду в списке СОЗДАТЬ. Поскольку большая часть данной книги посвящена описанию работы с сервером сценариев Windows, давайте опишем шаблон для быстрого создания основы скриптового файла .vbs. Для этого нужно воспользоваться ветвью реестра HKEY_CLASSES_ROOT\.VBS\SHELLNEW — создать в ней расширенный строковой параметр FILENAME (поскольку в шаблоне будут строки вызова объектов Windows, другие параметры данной ветви нам не подойдут), которому нужно присвоить путь к файлу шаблона. Например, присвоим данному параметру значение %systemroot%\WSHtemplate.vbs. А файл шаблона должен содержать следующие данные: set wshshell = WScript.CreateObject("WScript.Shell") Пока что хватит и этого вызова — когда мы займемся непосредственно созданиями скриптов, мы модифицируем файл шаблона. Теперь присваиваем созданному нами файлу имя WSHtemplate.vbs и смотрим на результат (Рис.2.02). Рисунок 2 Рис. 2.02 Создание команды меню Создать Продолжение следует Оригинал статьи: http://www.onestyle.com.ua/txt.php?u=107
|
В избранное | ||