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

Секреты Windows: статьи о реестре, rundll32.exe, программах


Приложение D. Использование ActiveX-объектов. Начало
Дата: 15 июня 2009, понедельник

Полезные ссылки

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

Реальная конкурентоспособность любой компании нередко определяется тем, насколько внимательно в ней относятся к защите конфиденциальной информации.

Программа”LABITAP_Cryptograph” обеспечит Ваш компьютер такой защитной системой, которая по стандартам сравнима с системой ФБР.

Подробности: http://sites.google.com/site/labitap/Home

В конец записи

История развития ActiveX-объектов начинается еще в 1991 году. Именно в этот год появилась такая технология, как OLE. OLE представляет собой специальные объекты, предназначенные для выполнения операций связывания и внедрения. Уже в 1993 году появилась вторая версия объектов OLE, которая вобрала в себя понятия нескольких технологий, основанных на модели COM (модель компонентного объекта, предназначенная для создания и редактирования компонентных объектов). Особенностью модели COM является независимость COM-объектов от используемого в их создании языка программирования. Например, если раньше какой-то класс был создан при помощи языка C++, то для него приходилось писать дополнительные классы на этом же языке. COM-объект же преобразуется в промежуточный бай-код, который не зависит от языка программирования, на котором был изначально написан COM-объект. Второй же особенностью COM-объектов является то, что они будут одинаково работать, независимо от того, находятся они на локальном компьютере или на удаленном. Все эти особенности COM-объектов переняли и OLE-объекты второй версии.

Через три года, в 1996 году, на свет появилась технология ActiveX. ActiveX-объекты представляют собой полностью скомпилированные программы, которые не могут быть запущены непосредственно пользователем, но могут запускаться браузером Internet Explorer, самой операционной системой, или любой другой программой. Несмотря на то, что корпорация Microsoft позиционирует ActiveX-объекты как совершенно новую технологию, она является развитием OLE-объектов, и переняла от них основные функции и возможности. Каждый ActiveX-объект должен содержать подпись своего создателя, которая производится одним из центров сертификации, и гарантирует, что данный ActiveX-объект не выполняет никаких вредоносных или подозрительных действий.

Каждый ActiveX-объект имеет уникальный идентификатор, называемый CLSID-номером, который позволяет идентифицировать ActiveX-объект среди других ActiveX-объектов. CLSID-номера ActiveX-объектов строятся на основе даты создания объекта, случайного числа и конфигурации компьютера. Эти имена состоят из 32 чисел в шестнадцатеричной системе исчисления. Первые восемь чисел генерируются случайным образом. Следующие четыре числа создаются на основе текущей даты и времени. Остальные числа генерируются на основе конфигурации компьютера.

Все ActiveX-объекты, чтобы ими можно было пользоваться, должны быть описаны в дочернем подразделе ветви реестра HKCR\CLSID. Данный подраздел реестра содержит в себе набор подразделов, названных в честь CLSID-номеров ActiveX-объектов. В этих подразделах как раз и описываются настройки конкретных ActiveX-объектов.

Но для чего же используются ActiveX-объекты? В операционной системе Windows Vista с помощью ActiveX-объектов можно сделать следующее: специальную вкладку диалога СВОЙСТВА файлов определенного расширения, специальную команду контекстного меню файлов определенного расширения или различных элементов операционной системы Windows, специальный значок с расширенными возможностями настройки, надстройки для операционной системы или сторонних программ и т.д. В контексте данной книги мы сконцентрируемся на описании стандартных ActiveX-объектов операционной системы и на их использовании, и только поверхностно рассмотрим создание простых ActiveX-объектов, не требующих знания языков программирования.

Структура подразделов реестра, определяющих ActiveX-объекты

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

Параметры подраздела ActiveX-объекта

Сведения обо всех ActiveX-объектах, зарегистрированных в операционной системе, содержатся в ветви реестра HKCR\CLSID. Каждый подраздел данной ветви реестра определяет настройки одного ActiveX-объекта. Данный подраздел назван в честь CLSID-номера ActiveX-объекта. Подраздел реестра HKCR\CLSID\{CLSID-номер ActiveX-объекта} может содержать в себе следующие параметры.

  • Параметр по умолчанию. Определяет название ActiveX-объекта. Также значение данного параметра может использоваться в качестве названия значка, если, конечно, ActiveX-объект создает значок.
  • AppID. Данный параметр строкового типа определяет CLSID-номер COM-приложения, которое использует данный ActiveX-объект.
  • InfoTip. Данный параметр строкового типа определяет подсказку, отображаемую при удержании курсора мыши над значком ActiveX-объекта.
  • LocalizedString. Данный параметр типа REG_EXPAND_SZ определяет название значка, создаваемого ActiveX-объектом. Значение этого параметра переопределяет значение параметра по умолчанию ветви ActiveX-объекта.

Некоторые подразделы, которые могут находиться в подразделе ActiveX-объекта

Также в подразделе ActiveX-объекта могут находиться дочерние подразделы.

Подраздел DefaultIcon

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

Подраздел Shell

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

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

И, наконец-то, в подразделе названия элемента контекстного меню должен содержаться подраздел command, параметр по умолчанию которого как раз и содержит в себе команду, которая будет выполняться при выборе соответствующего элемента контекстного меню.

Подраздел ShellEx

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

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

  • IconHandler. Определяет собственный обработчик значка для ActiveX-объекта. Например, так можно рисунок, содержащийся в файле, использовать как значок для этого файла.
  • PropertySheetHandlers. Определяет новую вкладку диалога PROPERTIES данного ActiveX-объекта или файла.
  • ContextMenuHandlers. Определяет новую команду контекстного меню значка ActiveX-объекта или файла.

Добавление вкладок к диалогу Properties

Как мы уже знаем, сведения об этих ActiveX-объектах, добавляющих вкладки к диалогу PROPERTIES, должны содержаться в ветви реестра HKCR\CLSID\{CLSID-номер ActiveX-объекта}\shellex\PropertySheetHandlers (или, если нужно добавить вкладку к диалогу PROPERTIES для файла стандартного расширения, в ветви реестра HKCR\«идентификатор файла»\shellex\PropertySheetHandlers).

Стандартные ActiveX-объекты

А теперь давайте рассмотрим стандартные ActiveX-объекты операционной системы Windows Vista, которые добавляют новые вкладки к диалогу PROPERTIES файлов или значков ActiveX-объектов.

  • {00020D75-0000-0000-C000-000000000046}. При открытии диалога PROPERTIES отображается дополнительный диалог настройки почты, с помощью которого можно добавить новую конфигурацию почты, либо выбрать из списка уже созданных ранее.

    По умолчанию данная вкладка добавлена к ActiveX-объекту {00020D75-0000-0000-C000-000000000046}.

  • {2206CDB2-19C1-11D1-89E0-00C04FD7A829}. Добавляет вкладки CONNECTION, PROVIDER, ADVANCED и ALL диалога PROPERTIES.

    По умолчанию данная вкладка добавлена к файлам с расширением .UDL.

  • {3FC0B520-68A9-11D0-8D77-00C04FD70822}. Добавляет вкладку DESKTOP диалога PROPERTIES.
  • {42071712-76d4-11d1-8b24-00a0c9068ff3}. Добавляет вкладку ADAPTER диалога PROPERTIES.
  • {42071713-76d4-11d1-8b24-00a0c9068ff3}. Добавляет вкладку MONITOR диалога PROPERTIES.
  • {596AB062-B4D2-4215-9F74-E9109B0A8153}. Добавляет вкладку PREVIOUS VERSION диалога PROPERTIES.

По умолчанию вкладка PREVIOUS VERSION добавляется к файлам всех типов расширений при помощи ветви реестра HKCR\AllFilesystemObjects\shellex\PropertySheetHandlers.

  • {5F5295E0-429F-1069-A2E2-08002B30309D}. Добавляет вкладки GENERAL (отображает сведения о файловой системе), TOOLS (содержит кнопки для выполнения архивации данных, либо проверки и дефрагментации диска), HARDWARE (содержит список всех установленных в данный момент на компьютер жестких дисков и устройств записи данных) диалога PROPERTIES.

    По умолчанию данные вкладки добавляются ко всем значкам разделов диска.

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

  • {60254CA5-953B-11CF-8C96-00AA00B8708C}. Добавляет вкладку SCRIPT диалога PROPERTIES. С помощью данной вкладки можно настроить параметры выполнения сценариев WSH.

    По умолчанию данная вкладка добавлена к файлам с расширением .JSE, .JS, .VBE, .VBS, .WSF, .WSH.

  • {645FF040-5081-101B-9F08-00AA002F954E}. Добавляет вкладку GENERAL диалога PROPERTIES. С помощью данной вкладки можно изменить параметры настройки работы КОРЗИНЫ на разных разделах диска операционной системы.

    По умолчанию данная вкладка добавлена к ActiveX-объекту {645FF040-5081-101B-9F08-00AA002F954E}.

  • {6D5313C0-8C62-11D1-B2CD-006097DF8C11}. Добавляет вкладки GENERAL, VIEW, SEARCH диалога PROPERTIES. Фактически, это те же вкладки с теми же возможностями, что и отображаемые в диалоге FOLDER OPTIONS, который можно открыть при помощи команды FOLDER AND SEARCH OPTIONS из меню ORGANIZE любого каталога.
  • {86422020-42A0-1069-A2E5-08002B30309D}. Добавляет вкладки GENERAL, TOOLS, HARDWARE диалога PROPERTIES. По умолчанию данные вкладки добавляются ко всем значкам разделов диска.
  • {F04CC277-03A2-4277-96A9-77967471BDFF}. Добавляет вкладку GENERAL диалога PROPERTIES, с помощью которой можно просмотреть информацию о синхронизации файла или папки.

    По умолчанию данная вкладка добавляется при помощи ветви реестра HKCR\ConflictFolder\shellex\PropertySheetHandlers.

  • {f92e8c40-3d33-11d2-b1aa-080036a75b03}. Добавляет вкладку TROUBLESHOOT диалога PROPERTIES.
  • {FA3E1D55-16DF-446d-872E-BD04D4F39C93}. Добавляет вкладку COM+ диалога PROPERTIES.

Пример добавления вкладок

В качестве примера давайте создадим свое собственное расширение файла, добавим к его диалогу PROPERTIES набор основных вкладок, после чего попробуем взглянуть на результат нашей работы.

Шаг 1. Создание нового расширения файла

Первый шаг реализации нашего примера является наиболее творческой задачей — нам нужно придумать новое расширение, создание файлов которого мы зарегистрируем в операционной системе.

Стало традицией создавать расширения файлов, состоящие из 3 символов (реже из 4 или 2), мы же с вами создадим расширение из 4 символов (чтобы вероятность совпадения нашего расширения с уже существующим расширением была минимальной). Например, создадим файлы с расширением .para.

Итак, результат действий, которые нужно выполнить для создания своего расширения, представлен на листинге 9.4 в виде reg-файла.

Листинг 9.4. REG-файл двух ветвей реестра, регистрирующих новое расширение
REGEDIT4

[HKEY_CLASSES_ROOT\.para]
 ="parafile"

[HKEY_CLASSES_ROOT\parafile]
"NeverShowExt"=""
 ="Test-File"

[HKEY_CLASSES_ROOT\parafile\shellex]

[HKEY_CLASSES_ROOT\parafile\shellex\PropertySheetHandlers]

Шаг 2. Добавление вкладок к диалогу Properties

Для примера давайте добавим следующие стандартные вкладки к диалогу нашего расширения файлов.

  • {645FF040-5081-101B-9F08-00AA002F954E}. Позволяет изменить параметры настройки работы КОРЗИНЫ.
  • {6D5313C0-8C62-11D1-B2CD-006097DF8C11}. Отображает вкладки диалога FOLDER OPTIONS.

Для выполнения этого шага вам достаточно создать в ветви реестра HKCR\parafile\shellex\PropertySheetHandlers дочерние подразделы {645FF040-5081-101B-9F08-00AA002F954E} и {6D5313C0-8C62-11D1-B2CD-006097DF8C11}.

Шаг 3. Проверка результатов

Чтобы проверить результат нашего творчества, достаточно создать обычный текстовый файл (либо любой другой), после чего изменить расширение .txt этого файла на расширение .para. После этого, как вы это сделаете и зайдете в диалог Properties для созданного файла, перед вами отобразится диалог, представленный на рисунке 9.01.


Рис. 9.01. Добавление дополнительных вкладок к диалогу Properties

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

Рейтинг: 5.00 [ 2 ] 
Оцените: 1 2 3 4 5
moemesto.ru bobrdobr.ru - добавить в социальные закладки
В начало записи
Оригинал статьи: http://www.onestyle.com.ua/txt.php?u=556

В избранное