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

на главную - закладки

Жанры

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

SErrMess="Ошибка ARJ.EXE! Код "+RetCode;

return false;

 }

}

]]>

 </script>

</component>

Регистрация файла DateArc.wsc в качестве СОМ-объекта

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

Нужно выделить в Проводнике Windows необходимый WSC-файл с компонентом-сценарием (в нашем случае это файл DateArc.wsc в каталоге C:\WSC), щелкнуть правой кнопкой мыши и в появившемся контекстном меню выбрать пункт Подключить (Register) (рис. 10.7).

Рис. 10.7. Контекстное меню, сопоставленное расширению WSC

После этого необходимая информация запишется в реестр и выполнится функция

Register
, которая описана в файле DateArc.wsc внутри элемента
<registration>
, в результате чего на экран будет выведено диалоговое окно, показанное на рис. 10.8. 

Рис. 10.8. Информация о регистрации компонента-сценария DateArc.WSC

В системном реестре данные о регистрируемом объекте

DateArc.WSC
заносятся в две ветви:
HKEY_LOCAL_MACHINE
и
HKEY_CLASSES_ROOT
.

В разделе

HKEY_LOCAL_MACHINE\SOFTWARE\Classes
создается новый подраздел
DateArc.WSC
со значением по умолчанию "
DateArc
". В подразделе
DateArc.WSC
в параметр
CLSID
записывается глобальный код объекта
DateArc.WSC
 — "{424AC2BC-5732-4DEA-BE17-0211AF99CD79}" (рис. 10.9).

Рис. 10.9. Информация о зарегистрированном объекте DateArc.WSC в ветви

HKEY_LOCAL_MACHINE

В разделе

HKEY_CLASSES_ROOT\CLSID
создается новый подраздел, название которого совпадает с глобальным кодом объекта DateArc.WSC — "{424AC2BC-5732-4DEA-BE17-0211AF99CD79}". Значением по умолчанию для нового подраздела является "DateArc" (рис. 10.10).

Рис. 10.10. Информация о зарегистрированном объекте DateArc.WSC в ветви

HKEY_CLASSES_ROOT

В новом разделе создаются, в свою очередь, еще несколько подразделов, значения которых очень важны для функционирования компонента-сценария в качестве СОМ-объекта (см. разд. "Технология Windows Script Components"). Эти разделы для нашего примера описаны в табл. 10.2.

Таблица 10.2. Подразделы, создаваемые в разделе HKCR\CLSID \{424AC2BC-5732-4DEA-BE17-0211AF99CD79} при регистрации объекта

DateArc.WSC

Название Значение
по умолчанию
Описание
InprocServer32
"F:\WINDOWS\System32\scrobj.dll" Полный путь к оболочке компонентов-сценариев scrobj.dll
ProgID
"DateArc.WSC.1.00" Программный идентификатор объекта, включающий номер версии
ScriptletURL
"file://C:\WSC\DateArc.wsc" Полный путь к WSC-файлу
VersionIndependentProgID
"DateArc.WSC" Программный идентификатор объекта без номера версии

Отключается компонент-сценарий так же просто, как и регистрируется. Снова нужно выделить в Проводнике Windows WSC-файл, щелкнуть правой кнопкой мыши и в появившемся контекстном меню выбрать пункт Отключить (Unregister). При этом из системного реестра записи об этом объекте будут удалены, после чего выполнится функция

Unregister
(рис. 10.11).

Рис. 10.11. Информация об отключении компонента-сценария DateArc.WSC 

Реализация объекта DateArc.wsc на VBScript

Различие между компонентами-сценариями, написанными на языках JScript и VBScript, проявляется только в секции

<script>
WSC-файлов. Во-первых, естественным образом меняется синтаксис описанных внутри контейнера
<script>
функций. Во-вторых, в WSC-файле, написанном с помощью VBScript, отсутствует описание внутреннего объекта, который генерируется программой Windows Script Component Wizard и имеет поля и методы, совпадающие с объявленными внутри элемента
<public>
(см. листинг 10.3).

Объяснение этому очень простое — в VBScript нельзя создавать свои внутренние объекты.

Полностью содержимое файла DateArcVB.wsc, который реализует СОМ-объект

DateArc.WSC
с помощью VBScript, приведено в листинге 10.5.

Листинг 10.5. СОМ-объект DateArc.WSC (VBScript)

<?xml version="1.0" encoding="windows-1251"?>

<component>

 <registration description="DateArc" progid="DateArc.WSC"

version="1.00" classid="{424ac2bc-5732-4dea-be17-0211af99cd79}">

 <script language="VBScript">

<![CDATA[

Dim WshShell

Function Register

 'Создаем объект WshShell

 Set WshShell = CreateObject("WScript.Shell")

 WshShell.Popup "Компонент зарегистрирован в системе",0,_

"Компонент для архивирования файлов",vbInformation

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

Второгодка. Книга 4. Подавать холодным

Ромов Дмитрий
4. Второгодка
Фантастика:
героическая фантастика
альтернативная история
сказочная фантастика
5.00
рейтинг книги
Второгодка. Книга 4. Подавать холодным

Я уже царь. Книга XXIX

Дрейк Сириус
29. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я уже царь. Книга XXIX

Неудержимый. Книга XXVI

Боярский Андрей
26. Неудержимый
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Неудержимый. Книга XXVI

Афганский рубеж

Дорин Михаил
1. Рубеж
Фантастика:
попаданцы
альтернативная история
7.50
рейтинг книги
Афганский рубеж

Спокойный Ваня 2

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

Развод с драконом. Отвергнутая целительница

Шашкова Алена
Фантастика:
фэнтези
4.75
рейтинг книги
Развод с драконом. Отвергнутая целительница

Московское золото и нежная попа комсомолки. Часть Четвертая

Хренов Алексей
4. Летчик Леха
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Московское золото и нежная попа комсомолки. Часть Четвертая

Последний Паладин. Том 2

Саваровский Роман
2. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 2

Оживший камень

Кас Маркус
1. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Оживший камень

Двойник Короля

Скабер Артемий
1. Двойник Короля
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Двойник Короля

Черный Маг Императора 11

Герда Александр
11. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Черный Маг Императора 11

Анти-Ксенонская Инициатива

Вайс Александр
7. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Анти-Ксенонская Инициатива

Камень. Книга пятая

Минин Станислав
5. Камень
Фантастика:
боевая фантастика
6.43
рейтинг книги
Камень. Книга пятая

Барон Дубов 8

Карелин Сергей Витальевич
8. Его Дубейшество
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Барон Дубов 8