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

ЖАНРЫ

Windows Script Host для Windows 2000/XP

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

Шрифт:

В новом разделе создаются, в свою очередь, еще несколько подразделов, значения которых очень важны для функционирования компонента-сценария в качестве СОМ-объекта (см. разд. "Технология 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

End Function

Function Unregister

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

 Set WshShell = CreateObject("WScript.Shell")

 WshShell.Popup "Компонент удален из системы",0,_

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

End Function

]]>

</script>

 </registration>

 <public>

<property name="SFrom">

<get/>

<put/>

</property>

<property name="SArch">

<get/>

<put/>

</property>

<property name="SPref">

<get/>

<put/>

</property>

<property name="SMask">

<get/>

<put/>

</property>

<property name="SErrMess">

<get/>

</property>

<method name="FilesToArchiv">

</method>

 </public>

 <script language="VBScript">

<![CDATA[

Dim SFrom 'Исходный каталог для архивирования

Dim SArch 'Каталог, в котором будет создаваться архив

Dim SPref 'Префикс файла

Dim SMask 'Маска, по которой отбираются файлы для

'архивирования

Dim SErrMess 'Текст сообщения об ошибке

'Чтение и запись свойства SFrom

Function get_SFrom

 get_SFrom = SFrom

End Function

Function put_SFrom(newValue)

 SFrom = newValue

End Function

'Чтение и запись свойства SArch

Function get_SArch

 get_SArch = SArch

End Function

Function put_SArch(newValue)

 SArch = newValue

End Function

'Чтение и запись свойства SPref

Function get_SPref

 get_SPref = SPref

End Function

Поделиться с друзьями: